[INFO] cloning repository https://github.com/k8-tools/devflow
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/k8-tools/devflow" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk8-tools%2Fdevflow", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk8-tools%2Fdevflow'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 21f7823ad398817353bee9657460d152634338a8
[INFO] testing k8-tools/devflow against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fk8-tools%2Fdevflow" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/k8-tools/devflow
[INFO] finished tweaking git repo https://github.com/k8-tools/devflow
[INFO] tweaked toml for git repo https://github.com/k8-tools/devflow written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/k8-tools/devflow on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/k8-tools/devflow already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5d3161ce2b11014554dcee205c71a5e9aad0bfc6ca7274cea074fce8b2ee153b
[INFO] running `Command { std: "docker" "start" "-a" "5d3161ce2b11014554dcee205c71a5e9aad0bfc6ca7274cea074fce8b2ee153b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5d3161ce2b11014554dcee205c71a5e9aad0bfc6ca7274cea074fce8b2ee153b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5d3161ce2b11014554dcee205c71a5e9aad0bfc6ca7274cea074fce8b2ee153b", kill_on_drop: false }`
[INFO] [stdout] 5d3161ce2b11014554dcee205c71a5e9aad0bfc6ca7274cea074fce8b2ee153b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 340457745eeb1c4a1d45c80082b98af41eaff41d8d73bff23cbfa5f6e6351ff0
[INFO] running `Command { std: "docker" "start" "-a" "340457745eeb1c4a1d45c80082b98af41eaff41d8d73bff23cbfa5f6e6351ff0", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling version_check v0.9.5
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling log v0.4.29
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling futures-io v0.3.32
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling signal-hook v0.3.18
[INFO] [stderr]    Compiling futures-task v0.3.32
[INFO] [stderr]    Compiling futures-sink v0.3.32
[INFO] [stderr]    Compiling cpufeatures v0.2.17
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling zstd-safe v5.0.2+zstd.1.5.2
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling getrandom v0.4.1
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling unicode-width v0.2.2
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling linux-raw-sys v0.11.0
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling syn v2.0.116
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling powerfmt v0.2.0
[INFO] [stderr]    Compiling httpdate v1.0.3
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling deranged v0.5.6
[INFO] [stderr]    Compiling hashbrown v0.15.5
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling inout v0.1.4
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling tokio v1.49.0
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling password-hash v0.4.2
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling signal-hook-mio v0.2.5
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling time-core v0.1.8
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling option-ext v0.2.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling num-conv v0.2.0
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling anyhow v1.0.101
[INFO] [stderr]    Compiling base64 v0.21.7
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling rustls-pemfile v1.0.4
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling openssl-sys v0.9.111
[INFO] [stderr]    Compiling libz-sys v1.1.23
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling libssh2-sys v0.3.1
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]    Compiling libgit2-sys v0.16.2+1.7.2
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tempfile v3.25.0
[INFO] [stderr]    Compiling openssl v0.10.75
[INFO] [stderr]    Compiling crossterm v0.27.0
[INFO] [stderr]    Compiling env_filter v1.0.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling pbkdf2 v0.11.0
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling bzip2 v0.4.4
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling shell-words v1.1.1
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling constant_time_eq v0.1.5
[INFO] [stderr]    Compiling home v0.5.12
[INFO] [stderr]    Compiling sync_wrapper v0.1.2
[INFO] [stderr]    Compiling unicode-width v0.1.14
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling number_prefix v0.4.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling jiff v0.2.20
[INFO] [stderr]    Compiling indicatif v0.17.11
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling which v6.0.3
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling chrono v0.4.43
[INFO] [stderr]    Compiling terminal_size v0.3.0
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling strum_macros v0.25.3
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling dialoguer v0.11.0
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling strum v0.25.0
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling ratatui v0.24.0
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling env_logger v0.11.9
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling toml_edit v0.21.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling zstd v0.11.2+zstd.1.5.2
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling zip v0.6.6
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling git2 v0.18.3
[INFO] [stderr]    Compiling devflow v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Modifier`
[INFO] [stdout]  --> src/tui/widgets/panel.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |     style::{Modifier, Style},
[INFO] [stdout]   |             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Gauge` and `text::Line`
[INFO] [stdout]   --> src/tui/widgets/progress.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     text::Line,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     widgets::{Block, Borders, Gauge, LineGauge, Paragraph, Widget},
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header::HeaderWidget`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use header::HeaderWidget;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sidebar::SidebarWidget`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use sidebar::SidebarWidget;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PanelStyle` and `Panel`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use panel::{Panel, PanelStyle};
[INFO] [stdout]    |                 ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ListStyle` and `SelectableList`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use list::{SelectableList, ListStyle};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProgressWidget` and `SpinnerWidget`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use progress::{ProgressWidget, SpinnerWidget};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `message` and `json_data` are never read
[INFO] [stdout]   --> src/commands/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CommandResult {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub message: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 34 |     /// Données JSON optionnelles
[INFO] [stdout] 35 |     pub json_data: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `success`, `error`, `with_data`, and `with_duration` are never used
[INFO] [stdout]    --> src/commands/mod.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl StructuredResult {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  72 |     /// Crée un résultat de succès
[INFO] [stdout]  73 |     pub fn success(command: &str, message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn error(command: &str, message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn with_data(mut self, data: serde_json::Value) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn with_duration(mut self, duration_ms: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_logs` is never used
[INFO] [stdout]    --> src/commands/logs.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn export_logs(output_file: &str, level: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_version`, and `with_settings` are never used
[INFO] [stdout]    --> src/config/settings.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | impl ProjectConfig {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 244 |     /// Create a new project configuration
[INFO] [stdout] 245 |     pub fn new(name: &str, template: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn set_version(&mut self, version: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn with_settings(mut self, settings: ProjectSettings) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/tui/events.rs:53:11
[INFO] [stdout]    |
[INFO] [stdout] 53 |     Input(char),
[INFO] [stdout]    |     ----- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 53 -     Input(char),
[INFO] [stdout] 53 +     Input(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ScrollDown` and `ScrollUp` are never constructed
[INFO] [stdout]   --> src/tui/events.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Action {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     ScrollDown,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 42 |     /// Défilement vers le haut
[INFO] [stdout] 43 |     ScrollUp,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OutputMessage` is never used
[INFO] [stdout]   --> src/tui/runner.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum OutputMessage {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandRunner` is never constructed
[INFO] [stdout]   --> src/tui/runner.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CommandRunner {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `run`, `execute_command`, `try_recv`, `recv`, and `has_messages` are never used
[INFO] [stdout]    --> src/tui/runner.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl CommandRunner {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  37 |     /// Exécute une commande de manière asynchrone
[INFO] [stdout]  38 |     pub fn run(name: &str, args: Vec<String>) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     fn execute_command(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn try_recv(&self) -> Option<OutputMessage> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn recv(&self) -> Result<OutputMessage> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn has_messages(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command_with_state` is never used
[INFO] [stdout]    --> src/tui/runner.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn run_command_with_state(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_runner_messages` is never used
[INFO] [stdout]    --> src/tui/runner.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn process_runner_messages(runner: &CommandRunner, state: &mut AppState) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressTracker` is never constructed
[INFO] [stdout]    --> src/tui/runner.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub struct ProgressTracker {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tui/runner.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | impl ProgressTracker {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 190 |     /// Crée un nouveau tracker
[INFO] [stdout] 191 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn with_total_steps(mut self, steps: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn step(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn update(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn percentage(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn should_update(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn elapsed_formatted(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_create_dialog` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn render_create_dialog(frame: &mut Frame, state: &AppState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_delete_confirm` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:185:8
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub fn render_delete_confirm(frame: &mut Frame, state: &AppState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_action` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub fn handle_action(state: &mut AppState, action: crate::tui::events::Action) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Editing` is never constructed
[INFO] [stdout]   --> src/tui/state.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub enum Mode {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 75 |     Editing,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `new_project_name` and `selected_template` are never read
[INFO] [stdout]    --> src/tui/state.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct ProjectsState {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub new_project_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 129 |     /// Template sélectionné pour la création
[INFO] [stdout] 130 |     pub selected_template: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProjectsState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `select_next`, `select_previous`, and `next_template` are never used
[INFO] [stdout]    --> src/tui/state.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl ProjectsState {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn select_next(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn select_previous(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn next_template(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `args` is never read
[INFO] [stdout]    --> src/tui/state.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub struct RunningCommand {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub args: Vec<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RunningCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/tui/state.rs:398:9
[INFO] [stdout]     |
[INFO] [stdout] 390 | pub struct ExecutedCommand {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub timestamp: chrono::DateTime<chrono::Local>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecutedCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LogEntry` is never used
[INFO] [stdout]    --> src/tui/state.rs:413:10
[INFO] [stdout]     |
[INFO] [stdout] 413 | pub type LogEntry = LogMessage;
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `color` and `prefix` are never used
[INFO] [stdout]    --> src/tui/state.rs:433:12
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl LogLevel {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 432 |     /// Retourne la couleur associée au niveau
[INFO] [stdout] 433 |     pub fn color(&self) -> ratatui::style::Color {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn prefix(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeaderWidget` is never constructed
[INFO] [stdout]   --> src/tui/widgets/header.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct HeaderWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_subtitle`, `hide_version`, and `with_version` are never used
[INFO] [stdout]   --> src/tui/widgets/header.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl HeaderWidget {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 25 |     /// Crée un nouvel en-tête
[INFO] [stdout] 26 |     pub fn new(title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn with_subtitle(mut self, subtitle: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn hide_version(mut self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn with_version(mut self, version: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_header` is never used
[INFO] [stdout]   --> src/tui/widgets/header.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn default_header() -> HeaderWidget {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SidebarWidget` is never constructed
[INFO] [stdout]   --> src/tui/widgets/sidebar.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SidebarWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `selected`, `focused`, and `with_title` are never used
[INFO] [stdout]   --> src/tui/widgets/sidebar.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl SidebarWidget {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 26 |     /// Crée une nouvelle sidebar
[INFO] [stdout] 27 |     pub fn new(tabs: Vec<Tab>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn focused(mut self, focused: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn with_title(mut self, title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PanelStyle` is never used
[INFO] [stdout]   --> src/tui/widgets/panel.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum PanelStyle {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]   --> src/tui/widgets/panel.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl PanelStyle {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 33 |     /// Retourne la couleur associée
[INFO] [stdout] 34 |     fn color(&self) -> ratatui::style::Color {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Panel` is never constructed
[INFO] [stdout]   --> src/tui/widgets/panel.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Panel<'a> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `title`, `content`, `style`, `border_type`, and `alignment` are never used
[INFO] [stdout]   --> src/tui/widgets/panel.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl<'a> Panel<'a> {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 56 |     /// Crée un nouveau panneau
[INFO] [stdout] 57 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn title(mut self, title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn content(mut self, content: Vec<Line<'a>>) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn style(mut self, style: PanelStyle) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn border_type(mut self, border_type: BorderType) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn alignment(mut self, alignment: ratatui::layout::Alignment) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modal_panel` is never used
[INFO] [stdout]    --> src/tui/widgets/panel.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn modal_panel<'a>(title: impl Into<String>, content: Vec<Line<'a>>) -> Panel<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_area` is never used
[INFO] [stdout]    --> src/tui/widgets/panel.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub fn clear_area(area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ListStyle` is never used
[INFO] [stdout]   --> src/tui/widgets/list.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ListStyle {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectableList` is never constructed
[INFO] [stdout]   --> src/tui/widgets/list.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct SelectableList {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `selected`, `title`, `style`, and `highlight_symbol` are never used
[INFO] [stdout]   --> src/tui/widgets/list.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl SelectableList {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 37 |     /// Crée une nouvelle liste
[INFO] [stdout] 38 |     pub fn new(items: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn title(mut self, title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn style(mut self, style: ListStyle) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn highlight_symbol(mut self, symbol: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_list` is never used
[INFO] [stdout]    --> src/tui/widgets/list.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn simple_list(items: Vec<String>, selected: Option<usize>) -> SelectableList {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressWidget` is never constructed
[INFO] [stdout]   --> src/tui/widgets/progress.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ProgressWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProgressStyle` is never used
[INFO] [stdout]   --> src/tui/widgets/progress.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum ProgressStyle {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]   --> src/tui/widgets/progress.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl ProgressStyle {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 41 |     fn color(&self) -> ratatui::style::Color {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `label`, `show_percentage`, and `style` are never used
[INFO] [stdout]   --> src/tui/widgets/progress.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl ProgressWidget {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 53 |     /// Crée une nouvelle barre de progression
[INFO] [stdout] 54 |     pub fn new(progress: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn label(mut self, label: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn show_percentage(mut self, show: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn style(mut self, style: ProgressStyle) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpinnerWidget` is never constructed
[INFO] [stdout]    --> src/tui/widgets/progress.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct SpinnerWidget {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_frames`, `tick`, and `current` are never used
[INFO] [stdout]    --> src/tui/widgets/progress.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl SpinnerWidget {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 115 |     /// Crée un nouveau spinner
[INFO] [stdout] 116 |     pub fn new(message: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn with_frames(mut self, frames: Vec<&'static str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn tick(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn current(&self) -> &str {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_progress` is never used
[INFO] [stdout]    --> src/tui/widgets/progress.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn simple_progress(progress: u8) -> ProgressWidget {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_spinner` is never used
[INFO] [stdout]    --> src/tui/widgets/progress.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn default_spinner(message: impl Into<String>) -> SpinnerWidget {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_command` is never used
[INFO] [stdout]   --> src/utils/mod.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn check_command(cmd: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_rust_project` is never used
[INFO] [stdout]   --> src/utils/mod.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn is_rust_project() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_project_name` is never used
[INFO] [stdout]   --> src/utils/mod.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn get_project_name() -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_project_version` is never used
[INFO] [stdout]   --> src/utils/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn get_project_version() -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_duration` is never used
[INFO] [stdout]   --> src/utils/mod.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn format_duration(duration: std::time::Duration) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate` is never used
[INFO] [stdout]   --> src/utils/mod.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn truncate(s: &str, max_len: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `supports_color` is never used
[INFO] [stdout]   --> src/utils/mod.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn supports_color() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `terminal_width` is never used
[INFO] [stdout]   --> src/utils/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn terminal_width() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `center_text` is never used
[INFO] [stdout]   --> src/utils/mod.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn center_text(text: &str, width: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `separator_line` is never used
[INFO] [stdout]    --> src/utils/mod.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn separator_line(width: Option<usize>) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_box` is never used
[INFO] [stdout]    --> src/utils/mod.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn print_box(title: &str, content: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_kebab_case` is never used
[INFO] [stdout]    --> src/utils/mod.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn to_kebab_case(s: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_snake_case` is never used
[INFO] [stdout]    --> src/utils/mod.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn to_snake_case(s: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_dir` is never used
[INFO] [stdout]    --> src/utils/mod.rs:177:8
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub fn current_dir() -> Result<std::path::PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_exists` is never used
[INFO] [stdout]    --> src/utils/mod.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn file_exists(path: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]    --> src/utils/mod.rs:188:8
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub fn read_file(path: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_file` is never used
[INFO] [stdout]    --> src/utils/mod.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn write_file(path: &str, content: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_dir_all` is never used
[INFO] [stdout]    --> src/utils/mod.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn create_dir_all(path: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_dir_all` is never used
[INFO] [stdout]    --> src/utils/mod.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn remove_dir_all(path: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_file` is never used
[INFO] [stdout]    --> src/utils/mod.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn copy_file(src: &str, dst: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_size` is never used
[INFO] [stdout]    --> src/utils/mod.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub fn file_size(path: &str) -> Result<u64> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_file_size` is never used
[INFO] [stdout]    --> src/utils/mod.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn format_file_size(bytes: u64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_timestamp` is never used
[INFO] [stdout]    --> src/utils/mod.rs:241:8
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub fn current_timestamp() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_timestamp` is never used
[INFO] [stdout]    --> src/utils/mod.rs:246:8
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub fn parse_timestamp(ts: &str) -> Result<chrono::DateTime<chrono::Local>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_id` is never used
[INFO] [stdout]    --> src/utils/mod.rs:253:8
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub fn generate_id() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `env_or_default` is never used
[INFO] [stdout]    --> src/utils/mod.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub fn env_or_default(var: &str, default: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `env_is_set` is never used
[INFO] [stdout]    --> src/utils/mod.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub fn env_is_set(var: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command` is never used
[INFO] [stdout]    --> src/utils/mod.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn run_command(cmd: &str, args: &[&str]) -> Result<std::process::Output> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command_status` is never used
[INFO] [stdout]    --> src/utils/mod.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn run_command_status(cmd: &str, args: &[&str]) -> Result<bool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sleep_ms` is never used
[INFO] [stdout]    --> src/utils/mod.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn sleep_ms(ms: u64) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sleep_secs` is never used
[INFO] [stdout]    --> src/utils/mod.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn sleep_secs(secs: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disable_colors` is never used
[INFO] [stdout]   --> src/utils/colors.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn disable_colors() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enable_colors` is never used
[INFO] [stdout]   --> src/utils/colors.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn enable_colors() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_color_control` is never used
[INFO] [stdout]   --> src/utils/colors.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn reset_color_control() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_bold` is never used
[INFO] [stdout]   --> src/utils/colors.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn print_bold(message: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_italic` is never used
[INFO] [stdout]   --> src/utils/colors.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn print_italic(message: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_colored` is never used
[INFO] [stdout]    --> src/utils/colors.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn print_colored(message: &str, color: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `green` is never used
[INFO] [stdout]    --> src/utils/colors.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn green(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `red` is never used
[INFO] [stdout]    --> src/utils/colors.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub fn red(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `yellow` is never used
[INFO] [stdout]    --> src/utils/colors.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn yellow(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blue` is never used
[INFO] [stdout]    --> src/utils/colors.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn blue(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cyan` is never used
[INFO] [stdout]    --> src/utils/colors.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn cyan(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `magenta` is never used
[INFO] [stdout]    --> src/utils/colors.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn magenta(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold` is never used
[INFO] [stdout]    --> src/utils/colors.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn bold(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `underline` is never used
[INFO] [stdout]    --> src/utils/colors.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn underline(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `italic` is never used
[INFO] [stdout]    --> src/utils/colors.rs:209:8
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub fn italic(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_green` is never used
[INFO] [stdout]    --> src/utils/colors.rs:218:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn bold_green(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_red` is never used
[INFO] [stdout]    --> src/utils/colors.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn bold_red(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_yellow` is never used
[INFO] [stdout]    --> src/utils/colors.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub fn bold_yellow(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_blue` is never used
[INFO] [stdout]    --> src/utils/colors.rs:245:8
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub fn bold_blue(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_cyan` is never used
[INFO] [stdout]    --> src/utils/colors.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub fn bold_cyan(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_success` is never used
[INFO] [stdout]    --> src/utils/colors.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub fn icon_success() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_error` is never used
[INFO] [stdout]    --> src/utils/colors.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub fn icon_error() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_warning` is never used
[INFO] [stdout]    --> src/utils/colors.rs:277:8
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub fn icon_warning() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_info` is never used
[INFO] [stdout]    --> src/utils/colors.rs:282:8
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub fn icon_info() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_arrow` is never used
[INFO] [stdout]    --> src/utils/colors.rs:287:8
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub fn icon_arrow() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_check` is never used
[INFO] [stdout]    --> src/utils/colors.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub fn icon_check() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_cross` is never used
[INFO] [stdout]    --> src/utils/colors.rs:297:8
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub fn icon_cross() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_bullet` is never used
[INFO] [stdout]    --> src/utils/colors.rs:302:8
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub fn icon_bullet() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_folder` is never used
[INFO] [stdout]    --> src/utils/colors.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn icon_folder() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_file` is never used
[INFO] [stdout]    --> src/utils/colors.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub fn icon_file() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_git` is never used
[INFO] [stdout]    --> src/utils/colors.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn icon_git() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_build` is never used
[INFO] [stdout]    --> src/utils/colors.rs:322:8
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn icon_build() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_test` is never used
[INFO] [stdout]    --> src/utils/colors.rs:327:8
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub fn icon_test() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_deploy` is never used
[INFO] [stdout]    --> src/utils/colors.rs:332:8
[INFO] [stdout]     |
[INFO] [stdout] 332 | pub fn icon_deploy() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_log` is never used
[INFO] [stdout]    --> src/utils/colors.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | pub fn icon_log() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_status` is never used
[INFO] [stdout]    --> src/utils/colors.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn icon_status() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_separator` is never used
[INFO] [stdout]    --> src/utils/colors.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub fn print_separator() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_box` is never used
[INFO] [stdout]    --> src/utils/colors.rs:361:8
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub fn print_box(title: &str, lines: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_list` is never used
[INFO] [stdout]    --> src/utils/colors.rs:385:8
[INFO] [stdout]     |
[INFO] [stdout] 385 | pub fn print_list(items: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_key_value` is never used
[INFO] [stdout]    --> src/utils/colors.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub fn print_key_value(key: &str, value: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_step` is never used
[INFO] [stdout]    --> src/utils/colors.rs:401:8
[INFO] [stdout]     |
[INFO] [stdout] 401 | pub fn print_step(step: usize, total: usize, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_logger` is never used
[INFO] [stdout]   --> src/utils/logger.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn init_logger() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_logger_with_level` is never used
[INFO] [stdout]   --> src/utils/logger.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn init_logger_with_level(level: LevelFilter) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_file_logger` is never used
[INFO] [stdout]   --> src/utils/logger.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn init_file_logger(log_file: &str) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_log_level` is never used
[INFO] [stdout]   --> src/utils/logger.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn current_log_level() -> LevelFilter {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_log_enabled` is never used
[INFO] [stdout]   --> src/utils/logger.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn is_log_enabled(level: log::Level) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_command` is never used
[INFO] [stdout]   --> src/utils/logger.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn log_command(command: &str, args: &[&str]) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_operation_start` is never used
[INFO] [stdout]    --> src/utils/logger.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn log_operation_start(operation: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_operation_end` is never used
[INFO] [stdout]    --> src/utils/logger.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn log_operation_end(operation: &str, success: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_error` is never used
[INFO] [stdout]    --> src/utils/logger.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn log_error(operation: &str, error: &anyhow::Error) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_performance` is never used
[INFO] [stdout]    --> src/utils/logger.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn log_performance(operation: &str, duration_ms: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_config` is never used
[INFO] [stdout]    --> src/utils/logger.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn log_config(key: &str, value: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_user_action` is never used
[INFO] [stdout]    --> src/utils/logger.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn log_user_action(action: &str, details: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_structured_logger` is never used
[INFO] [stdout]    --> src/utils/logger.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn create_structured_logger() -> StructuredLogger {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructuredLogger` is never constructed
[INFO] [stdout]    --> src/utils/logger.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct StructuredLogger {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LogEntry` is never constructed
[INFO] [stdout]    --> src/utils/logger.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | struct LogEntry {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `log`, `to_json`, and `save_to_file` are never used
[INFO] [stdout]    --> src/utils/logger.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl StructuredLogger {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 157 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn log(&mut self, level: &str, target: &str, message: &str) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn to_json(&self) -> Result<String> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn save_to_file(&self, path: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_log_level_from_str` is never used
[INFO] [stdout]    --> src/utils/logger.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub fn set_log_level_from_str(level: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_log_level` is never used
[INFO] [stdout]    --> src/utils/logger.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub fn show_log_level() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_log_levels` is never used
[INFO] [stdout]    --> src/utils/logger.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn list_log_levels() -> Vec<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn create_progress_bar(total: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_simple_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn create_simple_progress_bar(total: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_download_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn create_download_progress_bar(total_bytes: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_multi_step_progress` is never used
[INFO] [stdout]   --> src/utils/progress.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn create_multi_step_progress(steps: usize) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_hidden_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn create_hidden_progress_bar(total: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_progress` is never used
[INFO] [stdout]   --> src/utils/progress.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn update_progress(pb: &ProgressBar, position: u64, message: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increment_progress` is never used
[INFO] [stdout]   --> src/utils/progress.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn increment_progress(pb: &ProgressBar, delta: u64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_progress_success` is never used
[INFO] [stdout]    --> src/utils/progress.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn finish_progress_success(pb: ProgressBar, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_progress_error` is never used
[INFO] [stdout]    --> src/utils/progress.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn finish_progress_error(pb: ProgressBar, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_progress_warning` is never used
[INFO] [stdout]    --> src/utils/progress.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn finish_progress_warning(pb: ProgressBar, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_progress` is never used
[INFO] [stdout]    --> src/utils/progress.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn simulate_progress(message: &str, duration_ms: u64, steps: u64) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_parallel_progress` is never used
[INFO] [stdout]    --> src/utils/progress.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn create_parallel_progress(name: &str, total: u64) -> ProgressBar {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_progress` is never used
[INFO] [stdout]    --> src/utils/progress.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn with_progress<F, T>(total: u64, message: &str, f: F) -> T
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_percentage` is never used
[INFO] [stdout]    --> src/utils/progress.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn print_percentage(current: u64, total: u64, width: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_counter` is never used
[INFO] [stdout]    --> src/utils/progress.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub fn print_counter(current: usize, total: usize, label: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modern` is never used
[INFO] [stdout]    --> src/utils/progress.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pub fn modern() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `minimal` is never used
[INFO] [stdout]    --> src/utils/progress.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 232 |     pub fn minimal() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detailed` is never used
[INFO] [stdout]    --> src/utils/progress.rs:240:12
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn detailed() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download` is never used
[INFO] [stdout]    --> src/utils/progress.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn download() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload` is never used
[INFO] [stdout]    --> src/utils/progress.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 |     pub fn upload() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 18s
[INFO] running `Command { std: "docker" "inspect" "340457745eeb1c4a1d45c80082b98af41eaff41d8d73bff23cbfa5f6e6351ff0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "340457745eeb1c4a1d45c80082b98af41eaff41d8d73bff23cbfa5f6e6351ff0", kill_on_drop: false }`
[INFO] [stdout] 340457745eeb1c4a1d45c80082b98af41eaff41d8d73bff23cbfa5f6e6351ff0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] eba00f2596502316ba67502cf33de140a63f8d7a8db1dfb9d8f122d84b8f56d6
[INFO] running `Command { std: "docker" "start" "-a" "eba00f2596502316ba67502cf33de140a63f8d7a8db1dfb9d8f122d84b8f56d6", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-syntax v0.8.9
[INFO] [stderr]    Compiling predicates-core v1.0.10
[INFO] [stderr]    Compiling float-cmp v0.10.0
[INFO] [stderr]    Compiling assert_cmd v2.1.2
[INFO] [stderr]    Compiling normalize-line-endings v0.3.0
[INFO] [stderr]    Compiling termtree v0.5.1
[INFO] [stderr]    Compiling difflib v0.4.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling predicates-tree v1.0.13
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling env_filter v1.0.0
[INFO] [stderr]    Compiling predicates v3.1.4
[INFO] [stderr]    Compiling env_logger v0.11.9
[INFO] [stderr]    Compiling devflow v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]   --> tests/integration.rs:19:28
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]   --> tests/integration.rs:29:28
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]   --> tests/integration.rs:46:28
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]   --> tests/integration.rs:60:28
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]   --> tests/integration.rs:74:28
[INFO] [stdout]    |
[INFO] [stdout] 74 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]   --> tests/integration.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:102:28
[INFO] [stdout]     |
[INFO] [stdout] 102 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:116:28
[INFO] [stdout]     |
[INFO] [stdout] 116 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:138:28
[INFO] [stdout]     |
[INFO] [stdout] 138 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:152:28
[INFO] [stdout]     |
[INFO] [stdout] 152 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:167:28
[INFO] [stdout]     |
[INFO] [stdout] 167 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:192:28
[INFO] [stdout]     |
[INFO] [stdout] 192 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:208:28
[INFO] [stdout]     |
[INFO] [stdout] 208 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:227:28
[INFO] [stdout]     |
[INFO] [stdout] 227 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:248:28
[INFO] [stdout]     |
[INFO] [stdout] 248 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:267:28
[INFO] [stdout]     |
[INFO] [stdout] 267 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:301:28
[INFO] [stdout]     |
[INFO] [stdout] 301 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:315:28
[INFO] [stdout]     |
[INFO] [stdout] 315 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:327:28
[INFO] [stdout]     |
[INFO] [stdout] 327 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:352:28
[INFO] [stdout]     |
[INFO] [stdout] 352 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:367:28
[INFO] [stdout]     |
[INFO] [stdout] 367 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:388:28
[INFO] [stdout]     |
[INFO] [stdout] 388 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:398:28
[INFO] [stdout]     |
[INFO] [stdout] 398 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:409:28
[INFO] [stdout]     |
[INFO] [stdout] 409 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:424:28
[INFO] [stdout]     |
[INFO] [stdout] 424 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:450:28
[INFO] [stdout]     |
[INFO] [stdout] 450 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:487:28
[INFO] [stdout]     |
[INFO] [stdout] 487 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:510:28
[INFO] [stdout]     |
[INFO] [stdout] 510 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:524:32
[INFO] [stdout]     |
[INFO] [stdout] 524 |         let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:537:28
[INFO] [stdout]     |
[INFO] [stdout] 537 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:550:28
[INFO] [stdout]     |
[INFO] [stdout] 550 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:567:32
[INFO] [stdout]     |
[INFO] [stdout] 567 |         let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                                ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:583:28
[INFO] [stdout]     |
[INFO] [stdout] 583 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:597:28
[INFO] [stdout]     |
[INFO] [stdout] 597 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:604:28
[INFO] [stdout]     |
[INFO] [stdout] 604 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:611:28
[INFO] [stdout]     |
[INFO] [stdout] 611 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:619:28
[INFO] [stdout]     |
[INFO] [stdout] 619 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:638:28
[INFO] [stdout]     |
[INFO] [stdout] 638 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:661:28
[INFO] [stdout]     |
[INFO] [stdout] 661 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:695:28
[INFO] [stdout]     |
[INFO] [stdout] 695 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stdout]    --> tests/integration.rs:723:28
[INFO] [stdout]     |
[INFO] [stdout] 723 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Modifier`
[INFO] [stdout]  --> src/tui/widgets/panel.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |     style::{Modifier, Style},
[INFO] [stdout]   |             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Gauge` and `text::Line`
[INFO] [stdout]   --> src/tui/widgets/progress.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     text::Line,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     widgets::{Block, Borders, Gauge, LineGauge, Paragraph, Widget},
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header::HeaderWidget`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use header::HeaderWidget;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sidebar::SidebarWidget`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use sidebar::SidebarWidget;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PanelStyle` and `Panel`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use panel::{Panel, PanelStyle};
[INFO] [stdout]    |                 ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ListStyle` and `SelectableList`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use list::{SelectableList, ListStyle};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProgressWidget` and `SpinnerWidget`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use progress::{ProgressWidget, SpinnerWidget};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Modifier`
[INFO] [stdout]  --> src/tui/widgets/panel.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |     style::{Modifier, Style},
[INFO] [stdout]   |             ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Gauge` and `text::Line`
[INFO] [stdout]   --> src/tui/widgets/progress.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 |     text::Line,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 12 |     widgets::{Block, Borders, Gauge, LineGauge, Paragraph, Widget},
[INFO] [stdout]    |                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `header::HeaderWidget`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use header::HeaderWidget;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `sidebar::SidebarWidget`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use sidebar::SidebarWidget;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PanelStyle` and `Panel`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use panel::{Panel, PanelStyle};
[INFO] [stdout]    |                 ^^^^^  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ListStyle` and `SelectableList`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use list::{SelectableList, ListStyle};
[INFO] [stdout]    |                ^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ProgressWidget` and `SpinnerWidget`
[INFO] [stdout]   --> src/tui/widgets/mod.rs:17:20
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use progress::{ProgressWidget, SpinnerWidget};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `message` and `json_data` are never read
[INFO] [stdout]   --> src/commands/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CommandResult {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub message: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 34 |     /// Données JSON optionnelles
[INFO] [stdout] 35 |     pub json_data: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `success`, `error`, `with_data`, and `with_duration` are never used
[INFO] [stdout]    --> src/commands/mod.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl StructuredResult {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  72 |     /// Crée un résultat de succès
[INFO] [stdout]  73 |     pub fn success(command: &str, message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn error(command: &str, message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn with_data(mut self, data: serde_json::Value) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn with_duration(mut self, duration_ms: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_logs` is never used
[INFO] [stdout]    --> src/commands/logs.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn export_logs(output_file: &str, level: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_version`, and `with_settings` are never used
[INFO] [stdout]    --> src/config/settings.rs:245:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | impl ProjectConfig {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 244 |     /// Create a new project configuration
[INFO] [stdout] 245 |     pub fn new(name: &str, template: &str) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn set_version(&mut self, version: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn with_settings(mut self, settings: ProjectSettings) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/tui/events.rs:53:11
[INFO] [stdout]    |
[INFO] [stdout] 53 |     Input(char),
[INFO] [stdout]    |     ----- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 53 -     Input(char),
[INFO] [stdout] 53 +     Input(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ScrollDown` and `ScrollUp` are never constructed
[INFO] [stdout]   --> src/tui/events.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Action {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     ScrollDown,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 42 |     /// Défilement vers le haut
[INFO] [stdout] 43 |     ScrollUp,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OutputMessage` is never used
[INFO] [stdout]   --> src/tui/runner.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum OutputMessage {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandRunner` is never constructed
[INFO] [stdout]   --> src/tui/runner.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CommandRunner {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `run`, `execute_command`, `try_recv`, `recv`, and `has_messages` are never used
[INFO] [stdout]    --> src/tui/runner.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl CommandRunner {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  37 |     /// Exécute une commande de manière asynchrone
[INFO] [stdout]  38 |     pub fn run(name: &str, args: Vec<String>) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     fn execute_command(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn try_recv(&self) -> Option<OutputMessage> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn recv(&self) -> Result<OutputMessage> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn has_messages(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command_with_state` is never used
[INFO] [stdout]    --> src/tui/runner.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn run_command_with_state(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_runner_messages` is never used
[INFO] [stdout]    --> src/tui/runner.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn process_runner_messages(runner: &CommandRunner, state: &mut AppState) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressTracker` is never constructed
[INFO] [stdout]    --> src/tui/runner.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub struct ProgressTracker {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tui/runner.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | impl ProgressTracker {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 190 |     /// Crée un nouveau tracker
[INFO] [stdout] 191 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn with_total_steps(mut self, steps: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn step(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn update(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn percentage(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn should_update(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn elapsed_formatted(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_create_dialog` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn render_create_dialog(frame: &mut Frame, state: &AppState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_delete_confirm` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:185:8
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub fn render_delete_confirm(frame: &mut Frame, state: &AppState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_action` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub fn handle_action(state: &mut AppState, action: crate::tui::events::Action) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Editing` is never constructed
[INFO] [stdout]   --> src/tui/state.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub enum Mode {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 75 |     Editing,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `new_project_name` and `selected_template` are never read
[INFO] [stdout]    --> src/tui/state.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct ProjectsState {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub new_project_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 129 |     /// Template sélectionné pour la création
[INFO] [stdout] 130 |     pub selected_template: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProjectsState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `select_next`, `select_previous`, and `next_template` are never used
[INFO] [stdout]    --> src/tui/state.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl ProjectsState {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn select_next(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn select_previous(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn next_template(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `args` is never read
[INFO] [stdout]    --> src/tui/state.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub struct RunningCommand {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub args: Vec<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RunningCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/tui/state.rs:398:9
[INFO] [stdout]     |
[INFO] [stdout] 390 | pub struct ExecutedCommand {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub timestamp: chrono::DateTime<chrono::Local>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecutedCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LogEntry` is never used
[INFO] [stdout]    --> src/tui/state.rs:413:10
[INFO] [stdout]     |
[INFO] [stdout] 413 | pub type LogEntry = LogMessage;
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `color` and `prefix` are never used
[INFO] [stdout]    --> src/tui/state.rs:433:12
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl LogLevel {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 432 |     /// Retourne la couleur associée au niveau
[INFO] [stdout] 433 |     pub fn color(&self) -> ratatui::style::Color {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn prefix(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeaderWidget` is never constructed
[INFO] [stdout]   --> src/tui/widgets/header.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct HeaderWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_subtitle`, `hide_version`, and `with_version` are never used
[INFO] [stdout]   --> src/tui/widgets/header.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl HeaderWidget {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 25 |     /// Crée un nouvel en-tête
[INFO] [stdout] 26 |     pub fn new(title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn with_subtitle(mut self, subtitle: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn hide_version(mut self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn with_version(mut self, version: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_header` is never used
[INFO] [stdout]   --> src/tui/widgets/header.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn default_header() -> HeaderWidget {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SidebarWidget` is never constructed
[INFO] [stdout]   --> src/tui/widgets/sidebar.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SidebarWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `selected`, `focused`, and `with_title` are never used
[INFO] [stdout]   --> src/tui/widgets/sidebar.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl SidebarWidget {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 26 |     /// Crée une nouvelle sidebar
[INFO] [stdout] 27 |     pub fn new(tabs: Vec<Tab>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn focused(mut self, focused: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn with_title(mut self, title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PanelStyle` is never used
[INFO] [stdout]   --> src/tui/widgets/panel.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum PanelStyle {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]   --> src/tui/widgets/panel.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl PanelStyle {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 33 |     /// Retourne la couleur associée
[INFO] [stdout] 34 |     fn color(&self) -> ratatui::style::Color {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Panel` is never constructed
[INFO] [stdout]   --> src/tui/widgets/panel.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Panel<'a> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `title`, `content`, `style`, `border_type`, and `alignment` are never used
[INFO] [stdout]   --> src/tui/widgets/panel.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl<'a> Panel<'a> {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 56 |     /// Crée un nouveau panneau
[INFO] [stdout] 57 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn title(mut self, title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn content(mut self, content: Vec<Line<'a>>) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn style(mut self, style: PanelStyle) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn border_type(mut self, border_type: BorderType) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn alignment(mut self, alignment: ratatui::layout::Alignment) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modal_panel` is never used
[INFO] [stdout]    --> src/tui/widgets/panel.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn modal_panel<'a>(title: impl Into<String>, content: Vec<Line<'a>>) -> Panel<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_area` is never used
[INFO] [stdout]    --> src/tui/widgets/panel.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub fn clear_area(area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ListStyle` is never used
[INFO] [stdout]   --> src/tui/widgets/list.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ListStyle {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectableList` is never constructed
[INFO] [stdout]   --> src/tui/widgets/list.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct SelectableList {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `selected`, `title`, `style`, and `highlight_symbol` are never used
[INFO] [stdout]   --> src/tui/widgets/list.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl SelectableList {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 37 |     /// Crée une nouvelle liste
[INFO] [stdout] 38 |     pub fn new(items: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn title(mut self, title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn style(mut self, style: ListStyle) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn highlight_symbol(mut self, symbol: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_list` is never used
[INFO] [stdout]    --> src/tui/widgets/list.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn simple_list(items: Vec<String>, selected: Option<usize>) -> SelectableList {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressWidget` is never constructed
[INFO] [stdout]   --> src/tui/widgets/progress.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ProgressWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProgressStyle` is never used
[INFO] [stdout]   --> src/tui/widgets/progress.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum ProgressStyle {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]   --> src/tui/widgets/progress.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl ProgressStyle {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 41 |     fn color(&self) -> ratatui::style::Color {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `label`, `show_percentage`, and `style` are never used
[INFO] [stdout]   --> src/tui/widgets/progress.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl ProgressWidget {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 53 |     /// Crée une nouvelle barre de progression
[INFO] [stdout] 54 |     pub fn new(progress: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn label(mut self, label: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn show_percentage(mut self, show: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn style(mut self, style: ProgressStyle) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpinnerWidget` is never constructed
[INFO] [stdout]    --> src/tui/widgets/progress.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct SpinnerWidget {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_frames`, `tick`, and `current` are never used
[INFO] [stdout]    --> src/tui/widgets/progress.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl SpinnerWidget {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 115 |     /// Crée un nouveau spinner
[INFO] [stdout] 116 |     pub fn new(message: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn with_frames(mut self, frames: Vec<&'static str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn tick(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn current(&self) -> &str {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_progress` is never used
[INFO] [stdout]    --> src/tui/widgets/progress.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn simple_progress(progress: u8) -> ProgressWidget {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_spinner` is never used
[INFO] [stdout]    --> src/tui/widgets/progress.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn default_spinner(message: impl Into<String>) -> SpinnerWidget {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_command` is never used
[INFO] [stdout]   --> src/utils/mod.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn check_command(cmd: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_rust_project` is never used
[INFO] [stdout]   --> src/utils/mod.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn is_rust_project() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_project_name` is never used
[INFO] [stdout]   --> src/utils/mod.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn get_project_name() -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_project_version` is never used
[INFO] [stdout]   --> src/utils/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn get_project_version() -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_duration` is never used
[INFO] [stdout]   --> src/utils/mod.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn format_duration(duration: std::time::Duration) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate` is never used
[INFO] [stdout]   --> src/utils/mod.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn truncate(s: &str, max_len: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `supports_color` is never used
[INFO] [stdout]   --> src/utils/mod.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn supports_color() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `terminal_width` is never used
[INFO] [stdout]   --> src/utils/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn terminal_width() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `center_text` is never used
[INFO] [stdout]   --> src/utils/mod.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn center_text(text: &str, width: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `separator_line` is never used
[INFO] [stdout]    --> src/utils/mod.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn separator_line(width: Option<usize>) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_box` is never used
[INFO] [stdout]    --> src/utils/mod.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn print_box(title: &str, content: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_kebab_case` is never used
[INFO] [stdout]    --> src/utils/mod.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn to_kebab_case(s: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_snake_case` is never used
[INFO] [stdout]    --> src/utils/mod.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn to_snake_case(s: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_dir` is never used
[INFO] [stdout]    --> src/utils/mod.rs:177:8
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub fn current_dir() -> Result<std::path::PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_exists` is never used
[INFO] [stdout]    --> src/utils/mod.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn file_exists(path: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]    --> src/utils/mod.rs:188:8
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub fn read_file(path: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_file` is never used
[INFO] [stdout]    --> src/utils/mod.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn write_file(path: &str, content: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_dir_all` is never used
[INFO] [stdout]    --> src/utils/mod.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn create_dir_all(path: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_dir_all` is never used
[INFO] [stdout]    --> src/utils/mod.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn remove_dir_all(path: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_file` is never used
[INFO] [stdout]    --> src/utils/mod.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn copy_file(src: &str, dst: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_size` is never used
[INFO] [stdout]    --> src/utils/mod.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub fn file_size(path: &str) -> Result<u64> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_file_size` is never used
[INFO] [stdout]    --> src/utils/mod.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn format_file_size(bytes: u64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_timestamp` is never used
[INFO] [stdout]    --> src/utils/mod.rs:241:8
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub fn current_timestamp() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_timestamp` is never used
[INFO] [stdout]    --> src/utils/mod.rs:246:8
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub fn parse_timestamp(ts: &str) -> Result<chrono::DateTime<chrono::Local>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_id` is never used
[INFO] [stdout]    --> src/utils/mod.rs:253:8
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub fn generate_id() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `env_or_default` is never used
[INFO] [stdout]    --> src/utils/mod.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub fn env_or_default(var: &str, default: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `env_is_set` is never used
[INFO] [stdout]    --> src/utils/mod.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub fn env_is_set(var: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command` is never used
[INFO] [stdout]    --> src/utils/mod.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn run_command(cmd: &str, args: &[&str]) -> Result<std::process::Output> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command_status` is never used
[INFO] [stdout]    --> src/utils/mod.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn run_command_status(cmd: &str, args: &[&str]) -> Result<bool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sleep_ms` is never used
[INFO] [stdout]    --> src/utils/mod.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn sleep_ms(ms: u64) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sleep_secs` is never used
[INFO] [stdout]    --> src/utils/mod.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn sleep_secs(secs: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disable_colors` is never used
[INFO] [stdout]   --> src/utils/colors.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn disable_colors() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enable_colors` is never used
[INFO] [stdout]   --> src/utils/colors.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn enable_colors() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_color_control` is never used
[INFO] [stdout]   --> src/utils/colors.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn reset_color_control() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_bold` is never used
[INFO] [stdout]   --> src/utils/colors.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn print_bold(message: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_italic` is never used
[INFO] [stdout]   --> src/utils/colors.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn print_italic(message: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_colored` is never used
[INFO] [stdout]    --> src/utils/colors.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn print_colored(message: &str, color: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `green` is never used
[INFO] [stdout]    --> src/utils/colors.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn green(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `red` is never used
[INFO] [stdout]    --> src/utils/colors.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub fn red(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `yellow` is never used
[INFO] [stdout]    --> src/utils/colors.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn yellow(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blue` is never used
[INFO] [stdout]    --> src/utils/colors.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn blue(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cyan` is never used
[INFO] [stdout]    --> src/utils/colors.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn cyan(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `magenta` is never used
[INFO] [stdout]    --> src/utils/colors.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn magenta(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold` is never used
[INFO] [stdout]    --> src/utils/colors.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn bold(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `underline` is never used
[INFO] [stdout]    --> src/utils/colors.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn underline(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `italic` is never used
[INFO] [stdout]    --> src/utils/colors.rs:209:8
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub fn italic(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_green` is never used
[INFO] [stdout]    --> src/utils/colors.rs:218:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn bold_green(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_red` is never used
[INFO] [stdout]    --> src/utils/colors.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn bold_red(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_yellow` is never used
[INFO] [stdout]    --> src/utils/colors.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub fn bold_yellow(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_blue` is never used
[INFO] [stdout]    --> src/utils/colors.rs:245:8
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub fn bold_blue(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_cyan` is never used
[INFO] [stdout]    --> src/utils/colors.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub fn bold_cyan(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_success` is never used
[INFO] [stdout]    --> src/utils/colors.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub fn icon_success() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_error` is never used
[INFO] [stdout]    --> src/utils/colors.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub fn icon_error() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_warning` is never used
[INFO] [stdout]    --> src/utils/colors.rs:277:8
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub fn icon_warning() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_info` is never used
[INFO] [stdout]    --> src/utils/colors.rs:282:8
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub fn icon_info() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_arrow` is never used
[INFO] [stdout]    --> src/utils/colors.rs:287:8
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub fn icon_arrow() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_check` is never used
[INFO] [stdout]    --> src/utils/colors.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub fn icon_check() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_cross` is never used
[INFO] [stdout]    --> src/utils/colors.rs:297:8
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub fn icon_cross() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_bullet` is never used
[INFO] [stdout]    --> src/utils/colors.rs:302:8
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub fn icon_bullet() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_folder` is never used
[INFO] [stdout]    --> src/utils/colors.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn icon_folder() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_file` is never used
[INFO] [stdout]    --> src/utils/colors.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub fn icon_file() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_git` is never used
[INFO] [stdout]    --> src/utils/colors.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn icon_git() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_build` is never used
[INFO] [stdout]    --> src/utils/colors.rs:322:8
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn icon_build() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_test` is never used
[INFO] [stdout]    --> src/utils/colors.rs:327:8
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub fn icon_test() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_deploy` is never used
[INFO] [stdout]    --> src/utils/colors.rs:332:8
[INFO] [stdout]     |
[INFO] [stdout] 332 | pub fn icon_deploy() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_log` is never used
[INFO] [stdout]    --> src/utils/colors.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | pub fn icon_log() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_status` is never used
[INFO] [stdout]    --> src/utils/colors.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn icon_status() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_separator` is never used
[INFO] [stdout]    --> src/utils/colors.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub fn print_separator() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_box` is never used
[INFO] [stdout]    --> src/utils/colors.rs:361:8
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub fn print_box(title: &str, lines: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_list` is never used
[INFO] [stdout]    --> src/utils/colors.rs:385:8
[INFO] [stdout]     |
[INFO] [stdout] 385 | pub fn print_list(items: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_key_value` is never used
[INFO] [stdout]    --> src/utils/colors.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub fn print_key_value(key: &str, value: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_step` is never used
[INFO] [stdout]    --> src/utils/colors.rs:401:8
[INFO] [stdout]     |
[INFO] [stdout] 401 | pub fn print_step(step: usize, total: usize, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_logger` is never used
[INFO] [stdout]   --> src/utils/logger.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn init_logger() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_logger_with_level` is never used
[INFO] [stdout]   --> src/utils/logger.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn init_logger_with_level(level: LevelFilter) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_file_logger` is never used
[INFO] [stdout]   --> src/utils/logger.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn init_file_logger(log_file: &str) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_log_level` is never used
[INFO] [stdout]   --> src/utils/logger.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn current_log_level() -> LevelFilter {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_log_enabled` is never used
[INFO] [stdout]   --> src/utils/logger.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn is_log_enabled(level: log::Level) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_command` is never used
[INFO] [stdout]   --> src/utils/logger.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn log_command(command: &str, args: &[&str]) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_operation_start` is never used
[INFO] [stdout]    --> src/utils/logger.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn log_operation_start(operation: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_operation_end` is never used
[INFO] [stdout]    --> src/utils/logger.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn log_operation_end(operation: &str, success: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_error` is never used
[INFO] [stdout]    --> src/utils/logger.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn log_error(operation: &str, error: &anyhow::Error) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_performance` is never used
[INFO] [stdout]    --> src/utils/logger.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn log_performance(operation: &str, duration_ms: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_config` is never used
[INFO] [stdout]    --> src/utils/logger.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn log_config(key: &str, value: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_user_action` is never used
[INFO] [stdout]    --> src/utils/logger.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn log_user_action(action: &str, details: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_structured_logger` is never used
[INFO] [stdout]    --> src/utils/logger.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn create_structured_logger() -> StructuredLogger {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructuredLogger` is never constructed
[INFO] [stdout]    --> src/utils/logger.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct StructuredLogger {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LogEntry` is never constructed
[INFO] [stdout]    --> src/utils/logger.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | struct LogEntry {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `log`, `to_json`, and `save_to_file` are never used
[INFO] [stdout]    --> src/utils/logger.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl StructuredLogger {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 157 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn log(&mut self, level: &str, target: &str, message: &str) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn to_json(&self) -> Result<String> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn save_to_file(&self, path: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_log_level_from_str` is never used
[INFO] [stdout]    --> src/utils/logger.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub fn set_log_level_from_str(level: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_log_level` is never used
[INFO] [stdout]    --> src/utils/logger.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub fn show_log_level() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_log_levels` is never used
[INFO] [stdout]    --> src/utils/logger.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn list_log_levels() -> Vec<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn create_progress_bar(total: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_simple_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn create_simple_progress_bar(total: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_download_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn create_download_progress_bar(total_bytes: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_multi_step_progress` is never used
[INFO] [stdout]   --> src/utils/progress.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn create_multi_step_progress(steps: usize) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_hidden_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn create_hidden_progress_bar(total: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_progress` is never used
[INFO] [stdout]   --> src/utils/progress.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn update_progress(pb: &ProgressBar, position: u64, message: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increment_progress` is never used
[INFO] [stdout]   --> src/utils/progress.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn increment_progress(pb: &ProgressBar, delta: u64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_progress_success` is never used
[INFO] [stdout]    --> src/utils/progress.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn finish_progress_success(pb: ProgressBar, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_progress_error` is never used
[INFO] [stdout]    --> src/utils/progress.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn finish_progress_error(pb: ProgressBar, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_progress_warning` is never used
[INFO] [stdout]    --> src/utils/progress.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn finish_progress_warning(pb: ProgressBar, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_progress` is never used
[INFO] [stdout]    --> src/utils/progress.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn simulate_progress(message: &str, duration_ms: u64, steps: u64) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_parallel_progress` is never used
[INFO] [stdout]    --> src/utils/progress.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn create_parallel_progress(name: &str, total: u64) -> ProgressBar {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_progress` is never used
[INFO] [stdout]    --> src/utils/progress.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn with_progress<F, T>(total: u64, message: &str, f: F) -> T
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_percentage` is never used
[INFO] [stdout]    --> src/utils/progress.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn print_percentage(current: u64, total: u64, width: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_counter` is never used
[INFO] [stdout]    --> src/utils/progress.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub fn print_counter(current: usize, total: usize, label: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modern` is never used
[INFO] [stdout]    --> src/utils/progress.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pub fn modern() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `minimal` is never used
[INFO] [stdout]    --> src/utils/progress.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 232 |     pub fn minimal() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detailed` is never used
[INFO] [stdout]    --> src/utils/progress.rs:240:12
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn detailed() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download` is never used
[INFO] [stdout]    --> src/utils/progress.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn download() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload` is never used
[INFO] [stdout]    --> src/utils/progress.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 |     pub fn upload() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `message` and `json_data` are never read
[INFO] [stdout]   --> src/commands/mod.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CommandResult {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub message: String,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] 34 |     /// Données JSON optionnelles
[INFO] [stdout] 35 |     pub json_data: Option<serde_json::Value>,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `CommandResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `success`, `error`, `with_data`, and `with_duration` are never used
[INFO] [stdout]    --> src/commands/mod.rs:73:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl StructuredResult {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout]  72 |     /// Crée un résultat de succès
[INFO] [stdout]  73 |     pub fn success(command: &str, message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  84 |     pub fn error(command: &str, message: &str) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  95 |     pub fn with_data(mut self, data: serde_json::Value) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn with_duration(mut self, duration_ms: u64) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `export_logs` is never used
[INFO] [stdout]    --> src/commands/logs.rs:352:8
[INFO] [stdout]     |
[INFO] [stdout] 352 | pub fn export_logs(output_file: &str, level: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_version` and `with_settings` are never used
[INFO] [stdout]    --> src/config/settings.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 243 | impl ProjectConfig {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 256 |     pub fn set_version(&mut self, version: &str) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 261 |     pub fn with_settings(mut self, settings: ProjectSettings) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/tui/events.rs:53:11
[INFO] [stdout]    |
[INFO] [stdout] 53 |     Input(char),
[INFO] [stdout]    |     ----- ^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 53 -     Input(char),
[INFO] [stdout] 53 +     Input(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `ScrollDown` and `ScrollUp` are never constructed
[INFO] [stdout]   --> src/tui/events.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum Action {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     ScrollDown,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 42 |     /// Défilement vers le haut
[INFO] [stdout] 43 |     ScrollUp,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `OutputMessage` is never used
[INFO] [stdout]   --> src/tui/runner.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum OutputMessage {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandRunner` is never constructed
[INFO] [stdout]   --> src/tui/runner.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct CommandRunner {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `run`, `execute_command`, `try_recv`, `recv`, and `has_messages` are never used
[INFO] [stdout]    --> src/tui/runner.rs:38:12
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl CommandRunner {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout]  37 |     /// Exécute une commande de manière asynchrone
[INFO] [stdout]  38 |     pub fn run(name: &str, args: Vec<String>) -> Result<Self> {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  56 |     fn execute_command(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn try_recv(&self) -> Option<OutputMessage> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn recv(&self) -> Result<OutputMessage> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 121 |     pub fn has_messages(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command_with_state` is never used
[INFO] [stdout]    --> src/tui/runner.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn run_command_with_state(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_runner_messages` is never used
[INFO] [stdout]    --> src/tui/runner.rs:142:8
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub fn process_runner_messages(runner: &CommandRunner, state: &mut AppState) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressTracker` is never constructed
[INFO] [stdout]    --> src/tui/runner.rs:182:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub struct ProgressTracker {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tui/runner.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 189 | impl ProgressTracker {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] 190 |     /// Crée un nouveau tracker
[INFO] [stdout] 191 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     pub fn with_total_steps(mut self, steps: usize) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn step(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 214 |     pub fn update(&mut self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn percentage(&self) -> u8 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 233 |     pub fn should_update(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     pub fn elapsed_formatted(&self) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_create_dialog` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn render_create_dialog(frame: &mut Frame, state: &AppState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render_delete_confirm` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:185:8
[INFO] [stdout]     |
[INFO] [stdout] 185 | pub fn render_delete_confirm(frame: &mut Frame, state: &AppState) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:222:4
[INFO] [stdout]     |
[INFO] [stdout] 222 | fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `handle_action` is never used
[INFO] [stdout]    --> src/tui/screens/projects.rs:243:8
[INFO] [stdout]     |
[INFO] [stdout] 243 | pub fn handle_action(state: &mut AppState, action: crate::tui::events::Action) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Editing` is never constructed
[INFO] [stdout]   --> src/tui/state.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub enum Mode {
[INFO] [stdout]    |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 75 |     Editing,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Mode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `new_project_name` and `selected_template` are never read
[INFO] [stdout]    --> src/tui/state.rs:128:9
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct ProjectsState {
[INFO] [stdout]     |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub new_project_name: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 129 |     /// Template sélectionné pour la création
[INFO] [stdout] 130 |     pub selected_template: String,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ProjectsState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `select_next`, `select_previous`, and `next_template` are never used
[INFO] [stdout]    --> src/tui/state.rs:145:12
[INFO] [stdout]     |
[INFO] [stdout] 133 | impl ProjectsState {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 145 |     pub fn select_next(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 |     pub fn select_previous(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn next_template(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `args` is never read
[INFO] [stdout]    --> src/tui/state.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 379 | pub struct RunningCommand {
[INFO] [stdout]     |            -------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 383 |     pub args: Vec<String>,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RunningCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `timestamp` is never read
[INFO] [stdout]    --> src/tui/state.rs:398:9
[INFO] [stdout]     |
[INFO] [stdout] 390 | pub struct ExecutedCommand {
[INFO] [stdout]     |            --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 398 |     pub timestamp: chrono::DateTime<chrono::Local>,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ExecutedCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `LogEntry` is never used
[INFO] [stdout]    --> src/tui/state.rs:413:10
[INFO] [stdout]     |
[INFO] [stdout] 413 | pub type LogEntry = LogMessage;
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `color` and `prefix` are never used
[INFO] [stdout]    --> src/tui/state.rs:433:12
[INFO] [stdout]     |
[INFO] [stdout] 431 | impl LogLevel {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] 432 |     /// Retourne la couleur associée au niveau
[INFO] [stdout] 433 |     pub fn color(&self) -> ratatui::style::Color {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 445 |     pub fn prefix(&self) -> &'static str {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HeaderWidget` is never constructed
[INFO] [stdout]   --> src/tui/widgets/header.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct HeaderWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_subtitle`, `hide_version`, and `with_version` are never used
[INFO] [stdout]   --> src/tui/widgets/header.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | impl HeaderWidget {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 25 |     /// Crée un nouvel en-tête
[INFO] [stdout] 26 |     pub fn new(title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn with_subtitle(mut self, subtitle: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 42 |     pub fn hide_version(mut self) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     pub fn with_version(mut self, version: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_header` is never used
[INFO] [stdout]   --> src/tui/widgets/header.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn default_header() -> HeaderWidget {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SidebarWidget` is never constructed
[INFO] [stdout]   --> src/tui/widgets/sidebar.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct SidebarWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `selected`, `focused`, and `with_title` are never used
[INFO] [stdout]   --> src/tui/widgets/sidebar.rs:27:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl SidebarWidget {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 26 |     /// Crée une nouvelle sidebar
[INFO] [stdout] 27 |     pub fn new(tabs: Vec<Tab>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     pub fn focused(mut self, focused: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn with_title(mut self, title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PanelStyle` is never used
[INFO] [stdout]   --> src/tui/widgets/panel.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum PanelStyle {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]   --> src/tui/widgets/panel.rs:34:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | impl PanelStyle {
[INFO] [stdout]    | --------------- method in this implementation
[INFO] [stdout] 33 |     /// Retourne la couleur associée
[INFO] [stdout] 34 |     fn color(&self) -> ratatui::style::Color {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Panel` is never constructed
[INFO] [stdout]   --> src/tui/widgets/panel.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct Panel<'a> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `title`, `content`, `style`, `border_type`, and `alignment` are never used
[INFO] [stdout]   --> src/tui/widgets/panel.rs:57:12
[INFO] [stdout]    |
[INFO] [stdout] 55 | impl<'a> Panel<'a> {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 56 |     /// Crée un nouveau panneau
[INFO] [stdout] 57 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 68 |     pub fn title(mut self, title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn content(mut self, content: Vec<Line<'a>>) -> Self {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 80 |     pub fn style(mut self, style: PanelStyle) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn border_type(mut self, border_type: BorderType) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn alignment(mut self, alignment: ratatui::layout::Alignment) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modal_panel` is never used
[INFO] [stdout]    --> src/tui/widgets/panel.rs:121:8
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub fn modal_panel<'a>(title: impl Into<String>, content: Vec<Line<'a>>) -> Panel<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_area` is never used
[INFO] [stdout]    --> src/tui/widgets/panel.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub fn clear_area(area: Rect, buf: &mut Buffer) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ListStyle` is never used
[INFO] [stdout]   --> src/tui/widgets/list.rs:18:10
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub enum ListStyle {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectableList` is never constructed
[INFO] [stdout]   --> src/tui/widgets/list.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct SelectableList {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `selected`, `title`, `style`, and `highlight_symbol` are never used
[INFO] [stdout]   --> src/tui/widgets/list.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | impl SelectableList {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 37 |     /// Crée une nouvelle liste
[INFO] [stdout] 38 |     pub fn new(items: Vec<String>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn title(mut self, title: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub fn style(mut self, style: ListStyle) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn highlight_symbol(mut self, symbol: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_list` is never used
[INFO] [stdout]    --> src/tui/widgets/list.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn simple_list(items: Vec<String>, selected: Option<usize>) -> SelectableList {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ProgressWidget` is never constructed
[INFO] [stdout]   --> src/tui/widgets/progress.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct ProgressWidget {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ProgressStyle` is never used
[INFO] [stdout]   --> src/tui/widgets/progress.rs:27:10
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub enum ProgressStyle {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `color` is never used
[INFO] [stdout]   --> src/tui/widgets/progress.rs:41:8
[INFO] [stdout]    |
[INFO] [stdout] 40 | impl ProgressStyle {
[INFO] [stdout]    | ------------------ method in this implementation
[INFO] [stdout] 41 |     fn color(&self) -> ratatui::style::Color {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `label`, `show_percentage`, and `style` are never used
[INFO] [stdout]   --> src/tui/widgets/progress.rs:54:12
[INFO] [stdout]    |
[INFO] [stdout] 52 | impl ProgressWidget {
[INFO] [stdout]    | ------------------- associated items in this implementation
[INFO] [stdout] 53 |     /// Crée une nouvelle barre de progression
[INFO] [stdout] 54 |     pub fn new(progress: u8) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn label(mut self, label: impl Into<String>) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn show_percentage(mut self, show: bool) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 76 |     pub fn style(mut self, style: ProgressStyle) -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SpinnerWidget` is never constructed
[INFO] [stdout]    --> src/tui/widgets/progress.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub struct SpinnerWidget {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `with_frames`, `tick`, and `current` are never used
[INFO] [stdout]    --> src/tui/widgets/progress.rs:116:12
[INFO] [stdout]     |
[INFO] [stdout] 114 | impl SpinnerWidget {
[INFO] [stdout]     | ------------------ associated items in this implementation
[INFO] [stdout] 115 |     /// Crée un nouveau spinner
[INFO] [stdout] 116 |     pub fn new(message: impl Into<String>) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     pub fn with_frames(mut self, frames: Vec<&'static str>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 131 |     pub fn tick(&mut self) {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn current(&self) -> &str {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simple_progress` is never used
[INFO] [stdout]    --> src/tui/widgets/progress.rs:154:8
[INFO] [stdout]     |
[INFO] [stdout] 154 | pub fn simple_progress(progress: u8) -> ProgressWidget {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `default_spinner` is never used
[INFO] [stdout]    --> src/tui/widgets/progress.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn default_spinner(message: impl Into<String>) -> SpinnerWidget {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `check_command` is never used
[INFO] [stdout]   --> src/utils/mod.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn check_command(cmd: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_rust_project` is never used
[INFO] [stdout]   --> src/utils/mod.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn is_rust_project() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_project_name` is never used
[INFO] [stdout]   --> src/utils/mod.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn get_project_name() -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_project_version` is never used
[INFO] [stdout]   --> src/utils/mod.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn get_project_version() -> Option<String> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_duration` is never used
[INFO] [stdout]   --> src/utils/mod.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub fn format_duration(duration: std::time::Duration) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `truncate` is never used
[INFO] [stdout]   --> src/utils/mod.rs:62:8
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn truncate(s: &str, max_len: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `supports_color` is never used
[INFO] [stdout]   --> src/utils/mod.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn supports_color() -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `terminal_width` is never used
[INFO] [stdout]   --> src/utils/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn terminal_width() -> usize {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `center_text` is never used
[INFO] [stdout]   --> src/utils/mod.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub fn center_text(text: &str, width: usize) -> String {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `separator_line` is never used
[INFO] [stdout]    --> src/utils/mod.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn separator_line(width: Option<usize>) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_box` is never used
[INFO] [stdout]    --> src/utils/mod.rs:106:8
[INFO] [stdout]     |
[INFO] [stdout] 106 | pub fn print_box(title: &str, content: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_kebab_case` is never used
[INFO] [stdout]    --> src/utils/mod.rs:163:8
[INFO] [stdout]     |
[INFO] [stdout] 163 | pub fn to_kebab_case(s: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_snake_case` is never used
[INFO] [stdout]    --> src/utils/mod.rs:170:8
[INFO] [stdout]     |
[INFO] [stdout] 170 | pub fn to_snake_case(s: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_dir` is never used
[INFO] [stdout]    --> src/utils/mod.rs:177:8
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub fn current_dir() -> Result<std::path::PathBuf> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_exists` is never used
[INFO] [stdout]    --> src/utils/mod.rs:183:8
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub fn file_exists(path: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_file` is never used
[INFO] [stdout]    --> src/utils/mod.rs:188:8
[INFO] [stdout]     |
[INFO] [stdout] 188 | pub fn read_file(path: &str) -> Result<String> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_file` is never used
[INFO] [stdout]    --> src/utils/mod.rs:194:8
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub fn write_file(path: &str, content: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_dir_all` is never used
[INFO] [stdout]    --> src/utils/mod.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn create_dir_all(path: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_dir_all` is never used
[INFO] [stdout]    --> src/utils/mod.rs:206:8
[INFO] [stdout]     |
[INFO] [stdout] 206 | pub fn remove_dir_all(path: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `copy_file` is never used
[INFO] [stdout]    --> src/utils/mod.rs:212:8
[INFO] [stdout]     |
[INFO] [stdout] 212 | pub fn copy_file(src: &str, dst: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `file_size` is never used
[INFO] [stdout]    --> src/utils/mod.rs:219:8
[INFO] [stdout]     |
[INFO] [stdout] 219 | pub fn file_size(path: &str) -> Result<u64> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `format_file_size` is never used
[INFO] [stdout]    --> src/utils/mod.rs:226:8
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub fn format_file_size(bytes: u64) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_timestamp` is never used
[INFO] [stdout]    --> src/utils/mod.rs:241:8
[INFO] [stdout]     |
[INFO] [stdout] 241 | pub fn current_timestamp() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_timestamp` is never used
[INFO] [stdout]    --> src/utils/mod.rs:246:8
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub fn parse_timestamp(ts: &str) -> Result<chrono::DateTime<chrono::Local>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `generate_id` is never used
[INFO] [stdout]    --> src/utils/mod.rs:253:8
[INFO] [stdout]     |
[INFO] [stdout] 253 | pub fn generate_id() -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `env_or_default` is never used
[INFO] [stdout]    --> src/utils/mod.rs:265:8
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub fn env_or_default(var: &str, default: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `env_is_set` is never used
[INFO] [stdout]    --> src/utils/mod.rs:270:8
[INFO] [stdout]     |
[INFO] [stdout] 270 | pub fn env_is_set(var: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command` is never used
[INFO] [stdout]    --> src/utils/mod.rs:275:8
[INFO] [stdout]     |
[INFO] [stdout] 275 | pub fn run_command(cmd: &str, args: &[&str]) -> Result<std::process::Output> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_command_status` is never used
[INFO] [stdout]    --> src/utils/mod.rs:283:8
[INFO] [stdout]     |
[INFO] [stdout] 283 | pub fn run_command_status(cmd: &str, args: &[&str]) -> Result<bool> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sleep_ms` is never used
[INFO] [stdout]    --> src/utils/mod.rs:293:8
[INFO] [stdout]     |
[INFO] [stdout] 293 | pub fn sleep_ms(ms: u64) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sleep_secs` is never used
[INFO] [stdout]    --> src/utils/mod.rs:298:8
[INFO] [stdout]     |
[INFO] [stdout] 298 | pub fn sleep_secs(secs: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `disable_colors` is never used
[INFO] [stdout]   --> src/utils/colors.rs:21:8
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn disable_colors() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `enable_colors` is never used
[INFO] [stdout]   --> src/utils/colors.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn enable_colors() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reset_color_control` is never used
[INFO] [stdout]   --> src/utils/colors.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn reset_color_control() {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_bold` is never used
[INFO] [stdout]   --> src/utils/colors.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn print_bold(message: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_italic` is never used
[INFO] [stdout]   --> src/utils/colors.rs:96:8
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn print_italic(message: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_colored` is never used
[INFO] [stdout]    --> src/utils/colors.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn print_colored(message: &str, color: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `green` is never used
[INFO] [stdout]    --> src/utils/colors.rs:137:8
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn green(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `red` is never used
[INFO] [stdout]    --> src/utils/colors.rs:146:8
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub fn red(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `yellow` is never used
[INFO] [stdout]    --> src/utils/colors.rs:155:8
[INFO] [stdout]     |
[INFO] [stdout] 155 | pub fn yellow(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `blue` is never used
[INFO] [stdout]    --> src/utils/colors.rs:164:8
[INFO] [stdout]     |
[INFO] [stdout] 164 | pub fn blue(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cyan` is never used
[INFO] [stdout]    --> src/utils/colors.rs:173:8
[INFO] [stdout]     |
[INFO] [stdout] 173 | pub fn cyan(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `magenta` is never used
[INFO] [stdout]    --> src/utils/colors.rs:182:8
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub fn magenta(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold` is never used
[INFO] [stdout]    --> src/utils/colors.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn bold(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `underline` is never used
[INFO] [stdout]    --> src/utils/colors.rs:200:8
[INFO] [stdout]     |
[INFO] [stdout] 200 | pub fn underline(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `italic` is never used
[INFO] [stdout]    --> src/utils/colors.rs:209:8
[INFO] [stdout]     |
[INFO] [stdout] 209 | pub fn italic(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_green` is never used
[INFO] [stdout]    --> src/utils/colors.rs:218:8
[INFO] [stdout]     |
[INFO] [stdout] 218 | pub fn bold_green(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_red` is never used
[INFO] [stdout]    --> src/utils/colors.rs:227:8
[INFO] [stdout]     |
[INFO] [stdout] 227 | pub fn bold_red(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_yellow` is never used
[INFO] [stdout]    --> src/utils/colors.rs:236:8
[INFO] [stdout]     |
[INFO] [stdout] 236 | pub fn bold_yellow(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_blue` is never used
[INFO] [stdout]    --> src/utils/colors.rs:245:8
[INFO] [stdout]     |
[INFO] [stdout] 245 | pub fn bold_blue(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bold_cyan` is never used
[INFO] [stdout]    --> src/utils/colors.rs:254:8
[INFO] [stdout]     |
[INFO] [stdout] 254 | pub fn bold_cyan(text: &str) -> ColoredString {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_success` is never used
[INFO] [stdout]    --> src/utils/colors.rs:267:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | pub fn icon_success() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_error` is never used
[INFO] [stdout]    --> src/utils/colors.rs:272:8
[INFO] [stdout]     |
[INFO] [stdout] 272 | pub fn icon_error() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_warning` is never used
[INFO] [stdout]    --> src/utils/colors.rs:277:8
[INFO] [stdout]     |
[INFO] [stdout] 277 | pub fn icon_warning() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_info` is never used
[INFO] [stdout]    --> src/utils/colors.rs:282:8
[INFO] [stdout]     |
[INFO] [stdout] 282 | pub fn icon_info() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_arrow` is never used
[INFO] [stdout]    --> src/utils/colors.rs:287:8
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub fn icon_arrow() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_check` is never used
[INFO] [stdout]    --> src/utils/colors.rs:292:8
[INFO] [stdout]     |
[INFO] [stdout] 292 | pub fn icon_check() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_cross` is never used
[INFO] [stdout]    --> src/utils/colors.rs:297:8
[INFO] [stdout]     |
[INFO] [stdout] 297 | pub fn icon_cross() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_bullet` is never used
[INFO] [stdout]    --> src/utils/colors.rs:302:8
[INFO] [stdout]     |
[INFO] [stdout] 302 | pub fn icon_bullet() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_folder` is never used
[INFO] [stdout]    --> src/utils/colors.rs:307:8
[INFO] [stdout]     |
[INFO] [stdout] 307 | pub fn icon_folder() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_file` is never used
[INFO] [stdout]    --> src/utils/colors.rs:312:8
[INFO] [stdout]     |
[INFO] [stdout] 312 | pub fn icon_file() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_git` is never used
[INFO] [stdout]    --> src/utils/colors.rs:317:8
[INFO] [stdout]     |
[INFO] [stdout] 317 | pub fn icon_git() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_build` is never used
[INFO] [stdout]    --> src/utils/colors.rs:322:8
[INFO] [stdout]     |
[INFO] [stdout] 322 | pub fn icon_build() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_test` is never used
[INFO] [stdout]    --> src/utils/colors.rs:327:8
[INFO] [stdout]     |
[INFO] [stdout] 327 | pub fn icon_test() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_deploy` is never used
[INFO] [stdout]    --> src/utils/colors.rs:332:8
[INFO] [stdout]     |
[INFO] [stdout] 332 | pub fn icon_deploy() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_log` is never used
[INFO] [stdout]    --> src/utils/colors.rs:337:8
[INFO] [stdout]     |
[INFO] [stdout] 337 | pub fn icon_log() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `icon_status` is never used
[INFO] [stdout]    --> src/utils/colors.rs:342:8
[INFO] [stdout]     |
[INFO] [stdout] 342 | pub fn icon_status() -> &'static str {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_separator` is never used
[INFO] [stdout]    --> src/utils/colors.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub fn print_separator() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_box` is never used
[INFO] [stdout]    --> src/utils/colors.rs:361:8
[INFO] [stdout]     |
[INFO] [stdout] 361 | pub fn print_box(title: &str, lines: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_list` is never used
[INFO] [stdout]    --> src/utils/colors.rs:385:8
[INFO] [stdout]     |
[INFO] [stdout] 385 | pub fn print_list(items: &[&str]) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_key_value` is never used
[INFO] [stdout]    --> src/utils/colors.rs:392:8
[INFO] [stdout]     |
[INFO] [stdout] 392 | pub fn print_key_value(key: &str, value: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_step` is never used
[INFO] [stdout]    --> src/utils/colors.rs:401:8
[INFO] [stdout]     |
[INFO] [stdout] 401 | pub fn print_step(step: usize, total: usize, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_logger` is never used
[INFO] [stdout]   --> src/utils/logger.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn init_logger() {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_logger_with_level` is never used
[INFO] [stdout]   --> src/utils/logger.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn init_logger_with_level(level: LevelFilter) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `init_file_logger` is never used
[INFO] [stdout]   --> src/utils/logger.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn init_file_logger(log_file: &str) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `current_log_level` is never used
[INFO] [stdout]   --> src/utils/logger.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn current_log_level() -> LevelFilter {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_log_enabled` is never used
[INFO] [stdout]   --> src/utils/logger.rs:90:8
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub fn is_log_enabled(level: log::Level) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_command` is never used
[INFO] [stdout]   --> src/utils/logger.rs:95:8
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn log_command(command: &str, args: &[&str]) {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_operation_start` is never used
[INFO] [stdout]    --> src/utils/logger.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn log_operation_start(operation: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_operation_end` is never used
[INFO] [stdout]    --> src/utils/logger.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn log_operation_end(operation: &str, success: bool) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_error` is never used
[INFO] [stdout]    --> src/utils/logger.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn log_error(operation: &str, error: &anyhow::Error) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_performance` is never used
[INFO] [stdout]    --> src/utils/logger.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn log_performance(operation: &str, duration_ms: u64) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_config` is never used
[INFO] [stdout]    --> src/utils/logger.rs:129:8
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn log_config(key: &str, value: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `log_user_action` is never used
[INFO] [stdout]    --> src/utils/logger.rs:134:8
[INFO] [stdout]     |
[INFO] [stdout] 134 | pub fn log_user_action(action: &str, details: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_structured_logger` is never used
[INFO] [stdout]    --> src/utils/logger.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 139 | pub fn create_structured_logger() -> StructuredLogger {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `StructuredLogger` is never constructed
[INFO] [stdout]    --> src/utils/logger.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct StructuredLogger {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LogEntry` is never constructed
[INFO] [stdout]    --> src/utils/logger.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | struct LogEntry {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `log`, `to_json`, and `save_to_file` are never used
[INFO] [stdout]    --> src/utils/logger.rs:157:12
[INFO] [stdout]     |
[INFO] [stdout] 156 | impl StructuredLogger {
[INFO] [stdout]     | --------------------- associated items in this implementation
[INFO] [stdout] 157 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     pub fn log(&mut self, level: &str, target: &str, message: &str) {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 172 |     pub fn to_json(&self) -> Result<String> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     pub fn save_to_file(&self, path: &str) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_log_level_from_str` is never used
[INFO] [stdout]    --> src/utils/logger.rs:192:8
[INFO] [stdout]     |
[INFO] [stdout] 192 | pub fn set_log_level_from_str(level: &str) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `show_log_level` is never used
[INFO] [stdout]    --> src/utils/logger.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub fn show_log_level() {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `list_log_levels` is never used
[INFO] [stdout]    --> src/utils/logger.rs:216:8
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub fn list_log_levels() -> Vec<&'static str> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn create_progress_bar(total: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_simple_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn create_simple_progress_bar(total: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_download_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn create_download_progress_bar(total_bytes: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_multi_step_progress` is never used
[INFO] [stdout]   --> src/utils/progress.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn create_multi_step_progress(steps: usize) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_hidden_progress_bar` is never used
[INFO] [stdout]   --> src/utils/progress.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn create_hidden_progress_bar(total: u64) -> ProgressBar {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_progress` is never used
[INFO] [stdout]   --> src/utils/progress.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 93 | pub fn update_progress(pb: &ProgressBar, position: u64, message: &str) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `increment_progress` is never used
[INFO] [stdout]   --> src/utils/progress.rs:99:8
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub fn increment_progress(pb: &ProgressBar, delta: u64) {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_progress_success` is never used
[INFO] [stdout]    --> src/utils/progress.rs:104:8
[INFO] [stdout]     |
[INFO] [stdout] 104 | pub fn finish_progress_success(pb: ProgressBar, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_progress_error` is never used
[INFO] [stdout]    --> src/utils/progress.rs:113:8
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub fn finish_progress_error(pb: ProgressBar, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_progress_warning` is never used
[INFO] [stdout]    --> src/utils/progress.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn finish_progress_warning(pb: ProgressBar, message: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `simulate_progress` is never used
[INFO] [stdout]    --> src/utils/progress.rs:131:8
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub fn simulate_progress(message: &str, duration_ms: u64, steps: u64) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_parallel_progress` is never used
[INFO] [stdout]    --> src/utils/progress.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn create_parallel_progress(name: &str, total: u64) -> ProgressBar {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `with_progress` is never used
[INFO] [stdout]    --> src/utils/progress.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn with_progress<F, T>(total: u64, message: &str, f: F) -> T
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_percentage` is never used
[INFO] [stdout]    --> src/utils/progress.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn print_percentage(current: u64, total: u64, width: usize) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `print_counter` is never used
[INFO] [stdout]    --> src/utils/progress.rs:203:8
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub fn print_counter(current: usize, total: usize, label: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `modern` is never used
[INFO] [stdout]    --> src/utils/progress.rs:224:12
[INFO] [stdout]     |
[INFO] [stdout] 224 |     pub fn modern() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `minimal` is never used
[INFO] [stdout]    --> src/utils/progress.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 232 |     pub fn minimal() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `detailed` is never used
[INFO] [stdout]    --> src/utils/progress.rs:240:12
[INFO] [stdout]     |
[INFO] [stdout] 240 |     pub fn detailed() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `download` is never used
[INFO] [stdout]    --> src/utils/progress.rs:248:12
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn download() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `upload` is never used
[INFO] [stdout]    --> src/utils/progress.rs:256:12
[INFO] [stdout]     |
[INFO] [stdout] 256 |     pub fn upload() -> ProgressStyle {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 15.47s
[INFO] running `Command { std: "docker" "inspect" "eba00f2596502316ba67502cf33de140a63f8d7a8db1dfb9d8f122d84b8f56d6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eba00f2596502316ba67502cf33de140a63f8d7a8db1dfb9d8f122d84b8f56d6", kill_on_drop: false }`
[INFO] [stdout] eba00f2596502316ba67502cf33de140a63f8d7a8db1dfb9d8f122d84b8f56d6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 03a9e132d286a0d2588a2120e73bf2ad6e68029daa00af97099096a334571ba5
[INFO] running `Command { std: "docker" "start" "-a" "03a9e132d286a0d2588a2120e73bf2ad6e68029daa00af97099096a334571ba5", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Modifier`
[INFO] [stderr]  --> src/tui/widgets/panel.rs:8:13
[INFO] [stderr]   |
[INFO] [stderr] 8 |     style::{Modifier, Style},
[INFO] [stderr]   |             ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Gauge` and `text::Line`
[INFO] [stderr]   --> src/tui/widgets/progress.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 |     text::Line,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 12 |     widgets::{Block, Borders, Gauge, LineGauge, Paragraph, Widget},
[INFO] [stderr]    |                               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `header::HeaderWidget`
[INFO] [stderr]   --> src/tui/widgets/mod.rs:13:9
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub use header::HeaderWidget;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `sidebar::SidebarWidget`
[INFO] [stderr]   --> src/tui/widgets/mod.rs:14:9
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub use sidebar::SidebarWidget;
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PanelStyle` and `Panel`
[INFO] [stderr]   --> src/tui/widgets/mod.rs:15:17
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub use panel::{Panel, PanelStyle};
[INFO] [stderr]    |                 ^^^^^  ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ListStyle` and `SelectableList`
[INFO] [stderr]   --> src/tui/widgets/mod.rs:16:16
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub use list::{SelectableList, ListStyle};
[INFO] [stderr]    |                ^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ProgressWidget` and `SpinnerWidget`
[INFO] [stderr]   --> src/tui/widgets/mod.rs:17:20
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub use progress::{ProgressWidget, SpinnerWidget};
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: fields `message` and `json_data` are never read
[INFO] [stderr]   --> src/commands/mod.rs:33:9
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub struct CommandResult {
[INFO] [stderr]    |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub message: String,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] 34 |     /// Données JSON optionnelles
[INFO] [stderr] 35 |     pub json_data: Option<serde_json::Value>,
[INFO] [stderr]    |         ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `CommandResult` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `success`, `error`, `with_data`, and `with_duration` are never used
[INFO] [stderr]    --> src/commands/mod.rs:73:12
[INFO] [stderr]     |
[INFO] [stderr]  71 | impl StructuredResult {
[INFO] [stderr]     | --------------------- associated items in this implementation
[INFO] [stderr]  72 |     /// Crée un résultat de succès
[INFO] [stderr]  73 |     pub fn success(command: &str, message: &str) -> Self {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  84 |     pub fn error(command: &str, message: &str) -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  95 |     pub fn with_data(mut self, data: serde_json::Value) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub fn with_duration(mut self, duration_ms: u64) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `export_logs` is never used
[INFO] [stderr]    --> src/commands/logs.rs:352:8
[INFO] [stderr]     |
[INFO] [stderr] 352 | pub fn export_logs(output_file: &str, level: &str) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `set_version`, and `with_settings` are never used
[INFO] [stderr]    --> src/config/settings.rs:245:12
[INFO] [stderr]     |
[INFO] [stderr] 243 | impl ProjectConfig {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr] 244 |     /// Create a new project configuration
[INFO] [stderr] 245 |     pub fn new(name: &str, template: &str) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 256 |     pub fn set_version(&mut self, version: &str) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 261 |     pub fn with_settings(mut self, settings: ProjectSettings) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `0` is never read
[INFO] [stderr]   --> src/tui/events.rs:53:11
[INFO] [stderr]    |
[INFO] [stderr] 53 |     Input(char),
[INFO] [stderr]    |     ----- ^^^^
[INFO] [stderr]    |     |
[INFO] [stderr]    |     field in this variant
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stderr]    |
[INFO] [stderr] 53 -     Input(char),
[INFO] [stderr] 53 +     Input(()),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: variants `ScrollDown` and `ScrollUp` are never constructed
[INFO] [stderr]   --> src/tui/events.rs:41:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub enum Action {
[INFO] [stderr]    |          ------ variants in this enum
[INFO] [stderr] ...
[INFO] [stderr] 41 |     ScrollDown,
[INFO] [stderr]    |     ^^^^^^^^^^
[INFO] [stderr] 42 |     /// Défilement vers le haut
[INFO] [stderr] 43 |     ScrollUp,
[INFO] [stderr]    |     ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Action` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: enum `OutputMessage` is never used
[INFO] [stderr]   --> src/tui/runner.rs:17:10
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub enum OutputMessage {
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CommandRunner` is never constructed
[INFO] [stderr]   --> src/tui/runner.rs:29:12
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub struct CommandRunner {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `run`, `execute_command`, `try_recv`, `recv`, and `has_messages` are never used
[INFO] [stderr]    --> src/tui/runner.rs:38:12
[INFO] [stderr]     |
[INFO] [stderr]  36 | impl CommandRunner {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr]  37 |     /// Exécute une commande de manière asynchrone
[INFO] [stderr]  38 |     pub fn run(name: &str, args: Vec<String>) -> Result<Self> {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  56 |     fn execute_command(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub fn try_recv(&self) -> Option<OutputMessage> {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 116 |     pub fn recv(&self) -> Result<OutputMessage> {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 121 |     pub fn has_messages(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_command_with_state` is never used
[INFO] [stderr]    --> src/tui/runner.rs:129:8
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub fn run_command_with_state(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `process_runner_messages` is never used
[INFO] [stderr]    --> src/tui/runner.rs:142:8
[INFO] [stderr]     |
[INFO] [stderr] 142 | pub fn process_runner_messages(runner: &CommandRunner, state: &mut AppState) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ProgressTracker` is never constructed
[INFO] [stderr]    --> src/tui/runner.rs:182:12
[INFO] [stderr]     |
[INFO] [stderr] 182 | pub struct ProgressTracker {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/tui/runner.rs:191:12
[INFO] [stderr]     |
[INFO] [stderr] 189 | impl ProgressTracker {
[INFO] [stderr]     | -------------------- associated items in this implementation
[INFO] [stderr] 190 |     /// Crée un nouveau tracker
[INFO] [stderr] 191 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 202 |     pub fn with_total_steps(mut self, steps: usize) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 208 |     pub fn step(&mut self) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 214 |     pub fn update(&mut self) {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 219 |     pub fn percentage(&self) -> u8 {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 233 |     pub fn should_update(&self) -> bool {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 238 |     pub fn elapsed_formatted(&self) -> String {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `render_create_dialog` is never used
[INFO] [stderr]    --> src/tui/screens/projects.rs:147:8
[INFO] [stderr]     |
[INFO] [stderr] 147 | pub fn render_create_dialog(frame: &mut Frame, state: &AppState) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `render_delete_confirm` is never used
[INFO] [stderr]    --> src/tui/screens/projects.rs:185:8
[INFO] [stderr]     |
[INFO] [stderr] 185 | pub fn render_delete_confirm(frame: &mut Frame, state: &AppState) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `centered_rect` is never used
[INFO] [stderr]    --> src/tui/screens/projects.rs:222:4
[INFO] [stderr]     |
[INFO] [stderr] 222 | fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect {
[INFO] [stderr]     |    ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `handle_action` is never used
[INFO] [stderr]    --> src/tui/screens/projects.rs:243:8
[INFO] [stderr]     |
[INFO] [stderr] 243 | pub fn handle_action(state: &mut AppState, action: crate::tui::events::Action) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Editing` is never constructed
[INFO] [stderr]   --> src/tui/state.rs:75:5
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub enum Mode {
[INFO] [stderr]    |          ---- variant in this enum
[INFO] [stderr] ...
[INFO] [stderr] 75 |     Editing,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Mode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `new_project_name` and `selected_template` are never read
[INFO] [stderr]    --> src/tui/state.rs:128:9
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub struct ProjectsState {
[INFO] [stderr]     |            ------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 128 |     pub new_project_name: String,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 129 |     /// Template sélectionné pour la création
[INFO] [stderr] 130 |     pub selected_template: String,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ProjectsState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: methods `select_next`, `select_previous`, and `next_template` are never used
[INFO] [stderr]    --> src/tui/state.rs:145:12
[INFO] [stderr]     |
[INFO] [stderr] 133 | impl ProjectsState {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 145 |     pub fn select_next(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 152 |     pub fn select_previous(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 168 |     pub fn next_template(&mut self) {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `args` is never read
[INFO] [stderr]    --> src/tui/state.rs:383:9
[INFO] [stderr]     |
[INFO] [stderr] 379 | pub struct RunningCommand {
[INFO] [stderr]     |            -------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 383 |     pub args: Vec<String>,
[INFO] [stderr]     |         ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `RunningCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `timestamp` is never read
[INFO] [stderr]    --> src/tui/state.rs:398:9
[INFO] [stderr]     |
[INFO] [stderr] 390 | pub struct ExecutedCommand {
[INFO] [stderr]     |            --------------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 398 |     pub timestamp: chrono::DateTime<chrono::Local>,
[INFO] [stderr]     |         ^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `ExecutedCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: type alias `LogEntry` is never used
[INFO] [stderr]    --> src/tui/state.rs:413:10
[INFO] [stderr]     |
[INFO] [stderr] 413 | pub type LogEntry = LogMessage;
[INFO] [stderr]     |          ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: methods `color` and `prefix` are never used
[INFO] [stderr]    --> src/tui/state.rs:433:12
[INFO] [stderr]     |
[INFO] [stderr] 431 | impl LogLevel {
[INFO] [stderr]     | ------------- methods in this implementation
[INFO] [stderr] 432 |     /// Retourne la couleur associée au niveau
[INFO] [stderr] 433 |     pub fn color(&self) -> ratatui::style::Color {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 445 |     pub fn prefix(&self) -> &'static str {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `HeaderWidget` is never constructed
[INFO] [stderr]   --> src/tui/widgets/header.rs:17:12
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub struct HeaderWidget {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `with_subtitle`, `hide_version`, and `with_version` are never used
[INFO] [stderr]   --> src/tui/widgets/header.rs:26:12
[INFO] [stderr]    |
[INFO] [stderr] 24 | impl HeaderWidget {
[INFO] [stderr]    | ----------------- associated items in this implementation
[INFO] [stderr] 25 |     /// Crée un nouvel en-tête
[INFO] [stderr] 26 |     pub fn new(title: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn with_subtitle(mut self, subtitle: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 42 |     pub fn hide_version(mut self) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 48 |     pub fn with_version(mut self, version: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_header` is never used
[INFO] [stderr]   --> src/tui/widgets/header.rs:99:8
[INFO] [stderr]    |
[INFO] [stderr] 99 | pub fn default_header() -> HeaderWidget {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SidebarWidget` is never constructed
[INFO] [stderr]   --> src/tui/widgets/sidebar.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct SidebarWidget {
[INFO] [stderr]    |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `selected`, `focused`, and `with_title` are never used
[INFO] [stderr]   --> src/tui/widgets/sidebar.rs:27:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | impl SidebarWidget {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 26 |     /// Crée une nouvelle sidebar
[INFO] [stderr] 27 |     pub fn new(tabs: Vec<Tab>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 43 |     pub fn focused(mut self, focused: bool) -> Self {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn with_title(mut self, title: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `PanelStyle` is never used
[INFO] [stderr]   --> src/tui/widgets/panel.rs:17:10
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub enum PanelStyle {
[INFO] [stderr]    |          ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `color` is never used
[INFO] [stderr]   --> src/tui/widgets/panel.rs:34:8
[INFO] [stderr]    |
[INFO] [stderr] 32 | impl PanelStyle {
[INFO] [stderr]    | --------------- method in this implementation
[INFO] [stderr] 33 |     /// Retourne la couleur associée
[INFO] [stderr] 34 |     fn color(&self) -> ratatui::style::Color {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Panel` is never constructed
[INFO] [stderr]   --> src/tui/widgets/panel.rs:47:12
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub struct Panel<'a> {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `title`, `content`, `style`, `border_type`, and `alignment` are never used
[INFO] [stderr]   --> src/tui/widgets/panel.rs:57:12
[INFO] [stderr]    |
[INFO] [stderr] 55 | impl<'a> Panel<'a> {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 56 |     /// Crée un nouveau panneau
[INFO] [stderr] 57 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 68 |     pub fn title(mut self, title: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 74 |     pub fn content(mut self, content: Vec<Line<'a>>) -> Self {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 80 |     pub fn style(mut self, style: PanelStyle) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 86 |     pub fn border_type(mut self, border_type: BorderType) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 92 |     pub fn alignment(mut self, alignment: ratatui::layout::Alignment) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `modal_panel` is never used
[INFO] [stderr]    --> src/tui/widgets/panel.rs:121:8
[INFO] [stderr]     |
[INFO] [stderr] 121 | pub fn modal_panel<'a>(title: impl Into<String>, content: Vec<Line<'a>>) -> Panel<'a> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `clear_area` is never used
[INFO] [stderr]    --> src/tui/widgets/panel.rs:130:8
[INFO] [stderr]     |
[INFO] [stderr] 130 | pub fn clear_area(area: Rect, buf: &mut Buffer) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ListStyle` is never used
[INFO] [stderr]   --> src/tui/widgets/list.rs:18:10
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub enum ListStyle {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SelectableList` is never constructed
[INFO] [stderr]   --> src/tui/widgets/list.rs:28:12
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct SelectableList {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `selected`, `title`, `style`, and `highlight_symbol` are never used
[INFO] [stderr]   --> src/tui/widgets/list.rs:38:12
[INFO] [stderr]    |
[INFO] [stderr] 36 | impl SelectableList {
[INFO] [stderr]    | ------------------- associated items in this implementation
[INFO] [stderr] 37 |     /// Crée une nouvelle liste
[INFO] [stderr] 38 |     pub fn new(items: Vec<String>) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 49 |     pub fn selected(mut self, index: usize) -> Self {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 55 |     pub fn title(mut self, title: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 61 |     pub fn style(mut self, style: ListStyle) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 67 |     pub fn highlight_symbol(mut self, symbol: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `simple_list` is never used
[INFO] [stderr]    --> src/tui/widgets/list.rs:134:8
[INFO] [stderr]     |
[INFO] [stderr] 134 | pub fn simple_list(items: Vec<String>, selected: Option<usize>) -> SelectableList {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ProgressWidget` is never constructed
[INFO] [stderr]   --> src/tui/widgets/progress.rs:18:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | pub struct ProgressWidget {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ProgressStyle` is never used
[INFO] [stderr]   --> src/tui/widgets/progress.rs:27:10
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub enum ProgressStyle {
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `color` is never used
[INFO] [stderr]   --> src/tui/widgets/progress.rs:41:8
[INFO] [stderr]    |
[INFO] [stderr] 40 | impl ProgressStyle {
[INFO] [stderr]    | ------------------ method in this implementation
[INFO] [stderr] 41 |     fn color(&self) -> ratatui::style::Color {
[INFO] [stderr]    |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `label`, `show_percentage`, and `style` are never used
[INFO] [stderr]   --> src/tui/widgets/progress.rs:54:12
[INFO] [stderr]    |
[INFO] [stderr] 52 | impl ProgressWidget {
[INFO] [stderr]    | ------------------- associated items in this implementation
[INFO] [stderr] 53 |     /// Crée une nouvelle barre de progression
[INFO] [stderr] 54 |     pub fn new(progress: u8) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 64 |     pub fn label(mut self, label: impl Into<String>) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 70 |     pub fn show_percentage(mut self, show: bool) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 76 |     pub fn style(mut self, style: ProgressStyle) -> Self {
[INFO] [stderr]    |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SpinnerWidget` is never constructed
[INFO] [stderr]    --> src/tui/widgets/progress.rs:108:12
[INFO] [stderr]     |
[INFO] [stderr] 108 | pub struct SpinnerWidget {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `with_frames`, `tick`, and `current` are never used
[INFO] [stderr]    --> src/tui/widgets/progress.rs:116:12
[INFO] [stderr]     |
[INFO] [stderr] 114 | impl SpinnerWidget {
[INFO] [stderr]     | ------------------ associated items in this implementation
[INFO] [stderr] 115 |     /// Crée un nouveau spinner
[INFO] [stderr] 116 |     pub fn new(message: impl Into<String>) -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 125 |     pub fn with_frames(mut self, frames: Vec<&'static str>) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 131 |     pub fn tick(&mut self) {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 136 |     fn current(&self) -> &str {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `simple_progress` is never used
[INFO] [stderr]    --> src/tui/widgets/progress.rs:154:8
[INFO] [stderr]     |
[INFO] [stderr] 154 | pub fn simple_progress(progress: u8) -> ProgressWidget {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `default_spinner` is never used
[INFO] [stderr]    --> src/tui/widgets/progress.rs:159:8
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub fn default_spinner(message: impl Into<String>) -> SpinnerWidget {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `check_command` is never used
[INFO] [stderr]   --> src/utils/mod.rs:14:8
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub fn check_command(cmd: &str) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_rust_project` is never used
[INFO] [stderr]   --> src/utils/mod.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn is_rust_project() -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_project_name` is never used
[INFO] [stderr]   --> src/utils/mod.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn get_project_name() -> Option<String> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_project_version` is never used
[INFO] [stderr]   --> src/utils/mod.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn get_project_version() -> Option<String> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `format_duration` is never used
[INFO] [stderr]   --> src/utils/mod.rs:46:8
[INFO] [stderr]    |
[INFO] [stderr] 46 | pub fn format_duration(duration: std::time::Duration) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `truncate` is never used
[INFO] [stderr]   --> src/utils/mod.rs:62:8
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub fn truncate(s: &str, max_len: usize) -> String {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `supports_color` is never used
[INFO] [stderr]   --> src/utils/mod.rs:71:8
[INFO] [stderr]    |
[INFO] [stderr] 71 | pub fn supports_color() -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `terminal_width` is never used
[INFO] [stderr]   --> src/utils/mod.rs:82:8
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn terminal_width() -> usize {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `center_text` is never used
[INFO] [stderr]   --> src/utils/mod.rs:89:8
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub fn center_text(text: &str, width: usize) -> String {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `separator_line` is never used
[INFO] [stderr]    --> src/utils/mod.rs:100:8
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub fn separator_line(width: Option<usize>) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_box` is never used
[INFO] [stderr]    --> src/utils/mod.rs:106:8
[INFO] [stderr]     |
[INFO] [stderr] 106 | pub fn print_box(title: &str, content: &[&str]) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `to_kebab_case` is never used
[INFO] [stderr]    --> src/utils/mod.rs:163:8
[INFO] [stderr]     |
[INFO] [stderr] 163 | pub fn to_kebab_case(s: &str) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `to_snake_case` is never used
[INFO] [stderr]    --> src/utils/mod.rs:170:8
[INFO] [stderr]     |
[INFO] [stderr] 170 | pub fn to_snake_case(s: &str) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `current_dir` is never used
[INFO] [stderr]    --> src/utils/mod.rs:177:8
[INFO] [stderr]     |
[INFO] [stderr] 177 | pub fn current_dir() -> Result<std::path::PathBuf> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `file_exists` is never used
[INFO] [stderr]    --> src/utils/mod.rs:183:8
[INFO] [stderr]     |
[INFO] [stderr] 183 | pub fn file_exists(path: &str) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `read_file` is never used
[INFO] [stderr]    --> src/utils/mod.rs:188:8
[INFO] [stderr]     |
[INFO] [stderr] 188 | pub fn read_file(path: &str) -> Result<String> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `write_file` is never used
[INFO] [stderr]    --> src/utils/mod.rs:194:8
[INFO] [stderr]     |
[INFO] [stderr] 194 | pub fn write_file(path: &str, content: &str) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_dir_all` is never used
[INFO] [stderr]    --> src/utils/mod.rs:200:8
[INFO] [stderr]     |
[INFO] [stderr] 200 | pub fn create_dir_all(path: &str) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `remove_dir_all` is never used
[INFO] [stderr]    --> src/utils/mod.rs:206:8
[INFO] [stderr]     |
[INFO] [stderr] 206 | pub fn remove_dir_all(path: &str) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `copy_file` is never used
[INFO] [stderr]    --> src/utils/mod.rs:212:8
[INFO] [stderr]     |
[INFO] [stderr] 212 | pub fn copy_file(src: &str, dst: &str) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `file_size` is never used
[INFO] [stderr]    --> src/utils/mod.rs:219:8
[INFO] [stderr]     |
[INFO] [stderr] 219 | pub fn file_size(path: &str) -> Result<u64> {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `format_file_size` is never used
[INFO] [stderr]    --> src/utils/mod.rs:226:8
[INFO] [stderr]     |
[INFO] [stderr] 226 | pub fn format_file_size(bytes: u64) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `current_timestamp` is never used
[INFO] [stderr]    --> src/utils/mod.rs:241:8
[INFO] [stderr]     |
[INFO] [stderr] 241 | pub fn current_timestamp() -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_timestamp` is never used
[INFO] [stderr]    --> src/utils/mod.rs:246:8
[INFO] [stderr]     |
[INFO] [stderr] 246 | pub fn parse_timestamp(ts: &str) -> Result<chrono::DateTime<chrono::Local>> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `generate_id` is never used
[INFO] [stderr]    --> src/utils/mod.rs:253:8
[INFO] [stderr]     |
[INFO] [stderr] 253 | pub fn generate_id() -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `env_or_default` is never used
[INFO] [stderr]    --> src/utils/mod.rs:265:8
[INFO] [stderr]     |
[INFO] [stderr] 265 | pub fn env_or_default(var: &str, default: &str) -> String {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `env_is_set` is never used
[INFO] [stderr]    --> src/utils/mod.rs:270:8
[INFO] [stderr]     |
[INFO] [stderr] 270 | pub fn env_is_set(var: &str) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_command` is never used
[INFO] [stderr]    --> src/utils/mod.rs:275:8
[INFO] [stderr]     |
[INFO] [stderr] 275 | pub fn run_command(cmd: &str, args: &[&str]) -> Result<std::process::Output> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `run_command_status` is never used
[INFO] [stderr]    --> src/utils/mod.rs:283:8
[INFO] [stderr]     |
[INFO] [stderr] 283 | pub fn run_command_status(cmd: &str, args: &[&str]) -> Result<bool> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sleep_ms` is never used
[INFO] [stderr]    --> src/utils/mod.rs:293:8
[INFO] [stderr]     |
[INFO] [stderr] 293 | pub fn sleep_ms(ms: u64) {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `sleep_secs` is never used
[INFO] [stderr]    --> src/utils/mod.rs:298:8
[INFO] [stderr]     |
[INFO] [stderr] 298 | pub fn sleep_secs(secs: u64) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `disable_colors` is never used
[INFO] [stderr]   --> src/utils/colors.rs:21:8
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub fn disable_colors() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `enable_colors` is never used
[INFO] [stderr]   --> src/utils/colors.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub fn enable_colors() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `reset_color_control` is never used
[INFO] [stderr]   --> src/utils/colors.rs:33:8
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub fn reset_color_control() {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_bold` is never used
[INFO] [stderr]   --> src/utils/colors.rs:87:8
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub fn print_bold(message: &str) {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_italic` is never used
[INFO] [stderr]   --> src/utils/colors.rs:96:8
[INFO] [stderr]    |
[INFO] [stderr] 96 | pub fn print_italic(message: &str) {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_colored` is never used
[INFO] [stderr]    --> src/utils/colors.rs:105:8
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub fn print_colored(message: &str, color: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `green` is never used
[INFO] [stderr]    --> src/utils/colors.rs:137:8
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub fn green(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `red` is never used
[INFO] [stderr]    --> src/utils/colors.rs:146:8
[INFO] [stderr]     |
[INFO] [stderr] 146 | pub fn red(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `yellow` is never used
[INFO] [stderr]    --> src/utils/colors.rs:155:8
[INFO] [stderr]     |
[INFO] [stderr] 155 | pub fn yellow(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `blue` is never used
[INFO] [stderr]    --> src/utils/colors.rs:164:8
[INFO] [stderr]     |
[INFO] [stderr] 164 | pub fn blue(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `cyan` is never used
[INFO] [stderr]    --> src/utils/colors.rs:173:8
[INFO] [stderr]     |
[INFO] [stderr] 173 | pub fn cyan(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `magenta` is never used
[INFO] [stderr]    --> src/utils/colors.rs:182:8
[INFO] [stderr]     |
[INFO] [stderr] 182 | pub fn magenta(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bold` is never used
[INFO] [stderr]    --> src/utils/colors.rs:191:8
[INFO] [stderr]     |
[INFO] [stderr] 191 | pub fn bold(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `underline` is never used
[INFO] [stderr]    --> src/utils/colors.rs:200:8
[INFO] [stderr]     |
[INFO] [stderr] 200 | pub fn underline(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `italic` is never used
[INFO] [stderr]    --> src/utils/colors.rs:209:8
[INFO] [stderr]     |
[INFO] [stderr] 209 | pub fn italic(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bold_green` is never used
[INFO] [stderr]    --> src/utils/colors.rs:218:8
[INFO] [stderr]     |
[INFO] [stderr] 218 | pub fn bold_green(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bold_red` is never used
[INFO] [stderr]    --> src/utils/colors.rs:227:8
[INFO] [stderr]     |
[INFO] [stderr] 227 | pub fn bold_red(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bold_yellow` is never used
[INFO] [stderr]    --> src/utils/colors.rs:236:8
[INFO] [stderr]     |
[INFO] [stderr] 236 | pub fn bold_yellow(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bold_blue` is never used
[INFO] [stderr]    --> src/utils/colors.rs:245:8
[INFO] [stderr]     |
[INFO] [stderr] 245 | pub fn bold_blue(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `bold_cyan` is never used
[INFO] [stderr]    --> src/utils/colors.rs:254:8
[INFO] [stderr]     |
[INFO] [stderr] 254 | pub fn bold_cyan(text: &str) -> ColoredString {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_success` is never used
[INFO] [stderr]    --> src/utils/colors.rs:267:8
[INFO] [stderr]     |
[INFO] [stderr] 267 | pub fn icon_success() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_error` is never used
[INFO] [stderr]    --> src/utils/colors.rs:272:8
[INFO] [stderr]     |
[INFO] [stderr] 272 | pub fn icon_error() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_warning` is never used
[INFO] [stderr]    --> src/utils/colors.rs:277:8
[INFO] [stderr]     |
[INFO] [stderr] 277 | pub fn icon_warning() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_info` is never used
[INFO] [stderr]    --> src/utils/colors.rs:282:8
[INFO] [stderr]     |
[INFO] [stderr] 282 | pub fn icon_info() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_arrow` is never used
[INFO] [stderr]    --> src/utils/colors.rs:287:8
[INFO] [stderr]     |
[INFO] [stderr] 287 | pub fn icon_arrow() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_check` is never used
[INFO] [stderr]    --> src/utils/colors.rs:292:8
[INFO] [stderr]     |
[INFO] [stderr] 292 | pub fn icon_check() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_cross` is never used
[INFO] [stderr]    --> src/utils/colors.rs:297:8
[INFO] [stderr]     |
[INFO] [stderr] 297 | pub fn icon_cross() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_bullet` is never used
[INFO] [stderr]    --> src/utils/colors.rs:302:8
[INFO] [stderr]     |
[INFO] [stderr] 302 | pub fn icon_bullet() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_folder` is never used
[INFO] [stderr]    --> src/utils/colors.rs:307:8
[INFO] [stderr]     |
[INFO] [stderr] 307 | pub fn icon_folder() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_file` is never used
[INFO] [stderr]    --> src/utils/colors.rs:312:8
[INFO] [stderr]     |
[INFO] [stderr] 312 | pub fn icon_file() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_git` is never used
[INFO] [stderr]    --> src/utils/colors.rs:317:8
[INFO] [stderr]     |
[INFO] [stderr] 317 | pub fn icon_git() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_build` is never used
[INFO] [stderr]    --> src/utils/colors.rs:322:8
[INFO] [stderr]     |
[INFO] [stderr] 322 | pub fn icon_build() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_test` is never used
[INFO] [stderr]    --> src/utils/colors.rs:327:8
[INFO] [stderr]     |
[INFO] [stderr] 327 | pub fn icon_test() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_deploy` is never used
[INFO] [stderr]    --> src/utils/colors.rs:332:8
[INFO] [stderr]     |
[INFO] [stderr] 332 | pub fn icon_deploy() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_log` is never used
[INFO] [stderr]    --> src/utils/colors.rs:337:8
[INFO] [stderr]     |
[INFO] [stderr] 337 | pub fn icon_log() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `icon_status` is never used
[INFO] [stderr]    --> src/utils/colors.rs:342:8
[INFO] [stderr]     |
[INFO] [stderr] 342 | pub fn icon_status() -> &'static str {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_separator` is never used
[INFO] [stderr]    --> src/utils/colors.rs:351:8
[INFO] [stderr]     |
[INFO] [stderr] 351 | pub fn print_separator() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_box` is never used
[INFO] [stderr]    --> src/utils/colors.rs:361:8
[INFO] [stderr]     |
[INFO] [stderr] 361 | pub fn print_box(title: &str, lines: &[&str]) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_list` is never used
[INFO] [stderr]    --> src/utils/colors.rs:385:8
[INFO] [stderr]     |
[INFO] [stderr] 385 | pub fn print_list(items: &[&str]) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_key_value` is never used
[INFO] [stderr]    --> src/utils/colors.rs:392:8
[INFO] [stderr]     |
[INFO] [stderr] 392 | pub fn print_key_value(key: &str, value: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_step` is never used
[INFO] [stderr]    --> src/utils/colors.rs:401:8
[INFO] [stderr]     |
[INFO] [stderr] 401 | pub fn print_step(step: usize, total: usize, message: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `init_logger` is never used
[INFO] [stderr]   --> src/utils/logger.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub fn init_logger() {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `init_logger_with_level` is never used
[INFO] [stderr]   --> src/utils/logger.rs:44:8
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn init_logger_with_level(level: LevelFilter) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `init_file_logger` is never used
[INFO] [stderr]   --> src/utils/logger.rs:63:8
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub fn init_file_logger(log_file: &str) -> Result<()> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `current_log_level` is never used
[INFO] [stderr]   --> src/utils/logger.rs:85:8
[INFO] [stderr]    |
[INFO] [stderr] 85 | pub fn current_log_level() -> LevelFilter {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `is_log_enabled` is never used
[INFO] [stderr]   --> src/utils/logger.rs:90:8
[INFO] [stderr]    |
[INFO] [stderr] 90 | pub fn is_log_enabled(level: log::Level) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_command` is never used
[INFO] [stderr]   --> src/utils/logger.rs:95:8
[INFO] [stderr]    |
[INFO] [stderr] 95 | pub fn log_command(command: &str, args: &[&str]) {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_operation_start` is never used
[INFO] [stderr]    --> src/utils/logger.rs:100:8
[INFO] [stderr]     |
[INFO] [stderr] 100 | pub fn log_operation_start(operation: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_operation_end` is never used
[INFO] [stderr]    --> src/utils/logger.rs:105:8
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub fn log_operation_end(operation: &str, success: bool) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_error` is never used
[INFO] [stderr]    --> src/utils/logger.rs:114:8
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub fn log_error(operation: &str, error: &anyhow::Error) {
[INFO] [stderr]     |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_performance` is never used
[INFO] [stderr]    --> src/utils/logger.rs:124:8
[INFO] [stderr]     |
[INFO] [stderr] 124 | pub fn log_performance(operation: &str, duration_ms: u64) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_config` is never used
[INFO] [stderr]    --> src/utils/logger.rs:129:8
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub fn log_config(key: &str, value: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `log_user_action` is never used
[INFO] [stderr]    --> src/utils/logger.rs:134:8
[INFO] [stderr]     |
[INFO] [stderr] 134 | pub fn log_user_action(action: &str, details: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_structured_logger` is never used
[INFO] [stderr]    --> src/utils/logger.rs:139:8
[INFO] [stderr]     |
[INFO] [stderr] 139 | pub fn create_structured_logger() -> StructuredLogger {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `StructuredLogger` is never constructed
[INFO] [stderr]    --> src/utils/logger.rs:144:12
[INFO] [stderr]     |
[INFO] [stderr] 144 | pub struct StructuredLogger {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LogEntry` is never constructed
[INFO] [stderr]    --> src/utils/logger.rs:149:8
[INFO] [stderr]     |
[INFO] [stderr] 149 | struct LogEntry {
[INFO] [stderr]     |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `log`, `to_json`, and `save_to_file` are never used
[INFO] [stderr]    --> src/utils/logger.rs:157:12
[INFO] [stderr]     |
[INFO] [stderr] 156 | impl StructuredLogger {
[INFO] [stderr]     | --------------------- associated items in this implementation
[INFO] [stderr] 157 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 163 |     pub fn log(&mut self, level: &str, target: &str, message: &str) {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 172 |     pub fn to_json(&self) -> Result<String> {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 176 |     pub fn save_to_file(&self, path: &str) -> Result<()> {
[INFO] [stderr]     |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `set_log_level_from_str` is never used
[INFO] [stderr]    --> src/utils/logger.rs:192:8
[INFO] [stderr]     |
[INFO] [stderr] 192 | pub fn set_log_level_from_str(level: &str) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `show_log_level` is never used
[INFO] [stderr]    --> src/utils/logger.rs:210:8
[INFO] [stderr]     |
[INFO] [stderr] 210 | pub fn show_log_level() {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `list_log_levels` is never used
[INFO] [stderr]    --> src/utils/logger.rs:216:8
[INFO] [stderr]     |
[INFO] [stderr] 216 | pub fn list_log_levels() -> Vec<&'static str> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_progress_bar` is never used
[INFO] [stderr]   --> src/utils/progress.rs:12:8
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn create_progress_bar(total: u64) -> ProgressBar {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_simple_progress_bar` is never used
[INFO] [stderr]   --> src/utils/progress.rs:28:8
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub fn create_simple_progress_bar(total: u64) -> ProgressBar {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_download_progress_bar` is never used
[INFO] [stderr]   --> src/utils/progress.rs:61:8
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub fn create_download_progress_bar(total_bytes: u64) -> ProgressBar {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_multi_step_progress` is never used
[INFO] [stderr]   --> src/utils/progress.rs:74:8
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub fn create_multi_step_progress(steps: usize) -> ProgressBar {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_hidden_progress_bar` is never used
[INFO] [stderr]   --> src/utils/progress.rs:87:8
[INFO] [stderr]    |
[INFO] [stderr] 87 | pub fn create_hidden_progress_bar(total: u64) -> ProgressBar {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `update_progress` is never used
[INFO] [stderr]   --> src/utils/progress.rs:93:8
[INFO] [stderr]    |
[INFO] [stderr] 93 | pub fn update_progress(pb: &ProgressBar, position: u64, message: &str) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `increment_progress` is never used
[INFO] [stderr]   --> src/utils/progress.rs:99:8
[INFO] [stderr]    |
[INFO] [stderr] 99 | pub fn increment_progress(pb: &ProgressBar, delta: u64) {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `finish_progress_success` is never used
[INFO] [stderr]    --> src/utils/progress.rs:104:8
[INFO] [stderr]     |
[INFO] [stderr] 104 | pub fn finish_progress_success(pb: ProgressBar, message: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `finish_progress_error` is never used
[INFO] [stderr]    --> src/utils/progress.rs:113:8
[INFO] [stderr]     |
[INFO] [stderr] 113 | pub fn finish_progress_error(pb: ProgressBar, message: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `finish_progress_warning` is never used
[INFO] [stderr]    --> src/utils/progress.rs:122:8
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub fn finish_progress_warning(pb: ProgressBar, message: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `simulate_progress` is never used
[INFO] [stderr]    --> src/utils/progress.rs:131:8
[INFO] [stderr]     |
[INFO] [stderr] 131 | pub fn simulate_progress(message: &str, duration_ms: u64, steps: u64) -> Result<()> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `create_parallel_progress` is never used
[INFO] [stderr]    --> src/utils/progress.rs:147:8
[INFO] [stderr]     |
[INFO] [stderr] 147 | pub fn create_parallel_progress(name: &str, total: u64) -> ProgressBar {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `with_progress` is never used
[INFO] [stderr]    --> src/utils/progress.rs:162:8
[INFO] [stderr]     |
[INFO] [stderr] 162 | pub fn with_progress<F, T>(total: u64, message: &str, f: F) -> T
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_percentage` is never used
[INFO] [stderr]    --> src/utils/progress.rs:176:8
[INFO] [stderr]     |
[INFO] [stderr] 176 | pub fn print_percentage(current: u64, total: u64, width: usize) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `print_counter` is never used
[INFO] [stderr]    --> src/utils/progress.rs:203:8
[INFO] [stderr]     |
[INFO] [stderr] 203 | pub fn print_counter(current: usize, total: usize, label: &str) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `modern` is never used
[INFO] [stderr]    --> src/utils/progress.rs:224:12
[INFO] [stderr]     |
[INFO] [stderr] 224 |     pub fn modern() -> ProgressStyle {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `minimal` is never used
[INFO] [stderr]    --> src/utils/progress.rs:232:12
[INFO] [stderr]     |
[INFO] [stderr] 232 |     pub fn minimal() -> ProgressStyle {
[INFO] [stderr]     |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `detailed` is never used
[INFO] [stderr]    --> src/utils/progress.rs:240:12
[INFO] [stderr]     |
[INFO] [stderr] 240 |     pub fn detailed() -> ProgressStyle {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `download` is never used
[INFO] [stderr]    --> src/utils/progress.rs:248:12
[INFO] [stderr]     |
[INFO] [stderr] 248 |     pub fn download() -> ProgressStyle {
[INFO] [stderr]     |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `upload` is never used
[INFO] [stderr]    --> src/utils/progress.rs:256:12
[INFO] [stderr]     |
[INFO] [stderr] 256 |     pub fn upload() -> ProgressStyle {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `devflow` (bin "devflow") generated 165 warnings (run `cargo fix --bin "devflow" -p devflow` to apply 7 suggestions)
[INFO] [stderr] warning: methods `set_version` and `with_settings` are never used
[INFO] [stderr]    --> src/config/settings.rs:256:12
[INFO] [stderr]     |
[INFO] [stderr] 243 | impl ProjectConfig {
[INFO] [stderr]     | ------------------ methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 256 |     pub fn set_version(&mut self, version: &str) {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 261 |     pub fn with_settings(mut self, settings: ProjectSettings) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]   --> tests/integration.rs:19:28
[INFO] [stderr]    |
[INFO] [stderr] 19 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]    |                            ^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]   --> tests/integration.rs:29:28
[INFO] [stderr]    |
[INFO] [stderr] 29 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]    |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]   --> tests/integration.rs:46:28
[INFO] [stderr]    |
[INFO] [stderr] 46 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]    |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]   --> tests/integration.rs:60:28
[INFO] [stderr]    |
[INFO] [stderr] 60 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]    |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]   --> tests/integration.rs:74:28
[INFO] [stderr]    |
[INFO] [stderr] 74 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]    |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]   --> tests/integration.rs:88:28
[INFO] [stderr]    |
[INFO] [stderr] 88 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]    |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:102:28
[INFO] [stderr]     |
[INFO] [stderr] 102 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:116:28
[INFO] [stderr]     |
[INFO] [stderr] 116 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:138:28
[INFO] [stderr]     |
[INFO] [stderr] 138 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:152:28
[INFO] [stderr]     |
[INFO] [stderr] 152 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:167:28
[INFO] [stderr]     |
[INFO] [stderr] 167 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:192:28
[INFO] [stderr]     |
[INFO] [stderr] 192 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:208:28
[INFO] [stderr]     |
[INFO] [stderr] 208 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:227:28
[INFO] [stderr]     |
[INFO] [stderr] 227 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:248:28
[INFO] [stderr]     |
[INFO] [stderr] 248 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:267:28
[INFO] [stderr]     |
[INFO] [stderr] 267 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:301:28
[INFO] [stderr]     |
[INFO] [stderr] 301 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:315:28
[INFO] [stderr]     |
[INFO] [stderr] 315 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:327:28
[INFO] [stderr]     |
[INFO] [stderr] 327 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:352:28
[INFO] [stderr]     |
[INFO] [stderr] 352 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:367:28
[INFO] [stderr]     |
[INFO] [stderr] 367 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:388:28
[INFO] [stderr]     |
[INFO] [stderr] 388 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:398:28
[INFO] [stderr]     |
[INFO] [stderr] 398 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:409:28
[INFO] [stderr]     |
[INFO] [stderr] 409 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:424:28
[INFO] [stderr]     |
[INFO] [stderr] 424 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:450:28
[INFO] [stderr]     |
[INFO] [stderr] 450 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:487:28
[INFO] [stderr]     |
[INFO] [stderr] 487 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:510:28
[INFO] [stderr]     |
[INFO] [stderr] 510 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:524:32
[INFO] [stderr]     |
[INFO] [stderr] 524 |         let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                                ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:537:28
[INFO] [stderr]     |
[INFO] [stderr] 537 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:550:28
[INFO] [stderr]     |
[INFO] [stderr] 550 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:567:32
[INFO] [stderr]     |
[INFO] [stderr] 567 |         let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                                ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:583:28
[INFO] [stderr]     |
[INFO] [stderr] 583 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:597:28
[INFO] [stderr]     |
[INFO] [stderr] 597 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:604:28
[INFO] [stderr]     |
[INFO] [stderr] 604 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:611:28
[INFO] [stderr]     |
[INFO] [stderr] 611 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:619:28
[INFO] [stderr]     |
[INFO] [stderr] 619 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:638:28
[INFO] [stderr]     |
[INFO] [stderr] 638 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:661:28
[INFO] [stderr]     |
[INFO] [stderr] 661 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:695:28
[INFO] [stderr]     |
[INFO] [stderr] 695 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `assert_cmd::Command::cargo_bin`: incompatible with a custom cargo build-dir, see instead `cargo::cargo_bin_cmd!`
[INFO] [stderr]    --> tests/integration.rs:723:28
[INFO] [stderr]     |
[INFO] [stderr] 723 |     let mut cmd = Command::cargo_bin("devflow").unwrap();
[INFO] [stderr]     |                            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `devflow` (bin "devflow" test) generated 165 warnings (164 duplicates)
[INFO] [stderr] warning: `devflow` (test "integration") generated 41 warnings
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.34s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/devflow-50c3bff6795334d5)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test config::settings::tests::test_project_config_creation ... ok
[INFO] [stdout] test config::settings::tests::test_config_serialization ... ok
[INFO] [stdout] test config::settings::tests::test_default_global_config ... ok
[INFO] [stderr]      Running tests/integration.rs (/opt/rustwide/target/debug/deps/integration-09958d68b5a24cc0)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test test_init_invalid_template ... ok
[INFO] [stdout] test test_error_handling ... ok
[INFO] [stdout] test test_init_invalid_name ... ok
[INFO] [stdout] test test_build_no_project ... ok
[INFO] [stdout] test test_help ... ok
[INFO] [stdout] test test_logs_invalid_level ... ok
[INFO] [stdout] test test_logs_command ... ok
[INFO] [stdout] test test_logs_follow ... ok
[INFO] [stdout] test test_init_with_custom_path ... ok
[INFO] [stdout] test test_missing_arguments ... ok
[INFO] [stdout] test test_no_color ... ok
[INFO] [stdout] test test_output_json ... ok
[INFO] [stdout] test test_deploy_invalid_env ... ok
[INFO] [stdout] test test_logs_levels ... ok
[INFO] [stdout] test test_rust_log_env ... ok
[INFO] [stdout] test test_status_no_project ... ok
[INFO] [stdout] test test_subcommand_help ... ok
[INFO] [stdout] test test_init_lib_template ... FAILED
[INFO] [stdout] test test_devflow_config_content ... FAILED
[INFO] [stdout] test test_init_creates_project ... FAILED
[INFO] [stdout] test test_init_web_template ... FAILED
[INFO] [stdout] test test_multiple_projects ... FAILED
[INFO] [stdout] test test_init_cli_template ... FAILED
[INFO] [stdout] test test_project_name_validation ... ok
[INFO] [stdout] test test_version ... ok
[INFO] [stdout] test test_verbose_flag ... ok
[INFO] [stdout] test test_test_no_project ... ok
[INFO] [stdout] test test_status_detailed ... ok
[INFO] [stdout] test test_status_json_output ... FAILED
[INFO] [stdout] test test_init_with_git ... FAILED
[INFO] [stdout] test test_build_release_flag ... ok
[INFO] [stdout] test test_status_with_project ... ok
[INFO] [stdout] test test_test_with_filter ... ok
[INFO] [stdout] test test_test_unit ... ok
[INFO] [stdout] test test_test_integration ... ok
[INFO] [stdout] test test_build_with_target ... ok
[INFO] [stdout] test test_deploy_with_version ... ok
[INFO] [stdout] test test_deploy_staging ... ok
[INFO] [stderr] error: test failed, to rerun pass `--test integration`
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_init_lib_template stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_init_lib_template' (39) panicked at tests/integration.rs:237:5:
[INFO] [stdout] assertion failed: project_path.join("src/lib.rs").exists()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec4e911328de40a6]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6085e81dacaa - std[ec4e911328de40a6]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6085e81dacaa - <<std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a96a4c5c53f902a3]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6085e81f12da - <core[a96a4c5c53f902a3]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6085e81f12da - core[a96a4c5c53f902a3]::fmt::write
[INFO] [stdout]    6:     0x6085e81e0a12 - std[ec4e911328de40a6]::io::default_write_fmt::<alloc[c960326de6de28e6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6085e81e0a12 - <alloc[c960326de6de28e6]::vec::Vec<u8> as std[ec4e911328de40a6]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6085e81b7cff - <std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6085e81b7cff - std[ec4e911328de40a6]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6085e81d2699 - std[ec4e911328de40a6]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6085e8120c8c - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6085e8120c8c - test[30c43f9fd66fea90]::test_main_with_exit_callback::<test[30c43f9fd66fea90]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6085e81d2852 - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6085e81d2852 - std[ec4e911328de40a6]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6085e81b7dea - std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x6085e81af529 - std[ec4e911328de40a6]::sys::backtrace::__rust_end_short_backtrace::<std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6085e81b8acd - __rustc[aa69f48705c57ca8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6085e81f1aec - core[a96a4c5c53f902a3]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6085e81f1ab2 - core[a96a4c5c53f902a3]::panicking::panic
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x6085e810b104 - integration[35ab63daba4d2138]::test_init_lib_template
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:237:5
[INFO] [stdout]   21:     0x6085e8105e97 - integration[35ab63daba4d2138]::test_init_lib_template::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:225:28
[INFO] [stdout]   22:     0x6085e8114866 - <integration[35ab63daba4d2138]::test_init_lib_template::{closure#0} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6085e8114d6b - <fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6085e8114d6b - test[30c43f9fd66fea90]::__rust_begin_short_backtrace::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x6085e812175b - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x6085e812175b - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x6085e812175b - test[30c43f9fd66fea90]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x6085e811ce74 - test[30c43f9fd66fea90]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x6085e811ce74 - std[ec4e911328de40a6]::sys::backtrace::__rust_begin_short_backtrace::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x6085e8124362 - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::<(), core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x6085e8124362 - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x6085e8124362 - <std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x6085e81da01f - <alloc[c960326de6de28e6]::boxed::Box<dyn core[a96a4c5c53f902a3]::ops::function::FnOnce<(), Output = ()> + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   42:     0x6085e81da01f - <std[ec4e911328de40a6]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x7a363bcd8aa4 - <unknown>
[INFO] [stdout]   44:     0x7a363bd65a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_devflow_config_content stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_devflow_config_content' (26) panicked at tests/integration.rs:275:58:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec4e911328de40a6]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6085e81dacaa - std[ec4e911328de40a6]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6085e81dacaa - <<std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a96a4c5c53f902a3]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6085e81f12da - <core[a96a4c5c53f902a3]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6085e81f12da - core[a96a4c5c53f902a3]::fmt::write
[INFO] [stdout]    6:     0x6085e81e0a12 - std[ec4e911328de40a6]::io::default_write_fmt::<alloc[c960326de6de28e6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6085e81e0a12 - <alloc[c960326de6de28e6]::vec::Vec<u8> as std[ec4e911328de40a6]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6085e81b7cff - <std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6085e81b7cff - std[ec4e911328de40a6]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6085e81d2699 - std[ec4e911328de40a6]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6085e8120c8c - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6085e8120c8c - test[30c43f9fd66fea90]::test_main_with_exit_callback::<test[30c43f9fd66fea90]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6085e81d2852 - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6085e81d2852 - std[ec4e911328de40a6]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6085e81b7db8 - std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x6085e81af529 - std[ec4e911328de40a6]::sys::backtrace::__rust_end_short_backtrace::<std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6085e81b8acd - __rustc[aa69f48705c57ca8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6085e81f1aec - core[a96a4c5c53f902a3]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6085e81f1862 - core[a96a4c5c53f902a3]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x6085e810f2f0 - <core[a96a4c5c53f902a3]::result::Result<alloc[c960326de6de28e6]::string::String, std[ec4e911328de40a6]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x6085e810f2f0 - integration[35ab63daba4d2138]::test_devflow_config_content
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:275:58
[INFO] [stdout]   22:     0x6085e8106137 - integration[35ab63daba4d2138]::test_devflow_config_content::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:265:33
[INFO] [stdout]   23:     0x6085e8114be6 - <integration[35ab63daba4d2138]::test_devflow_config_content::{closure#0} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6085e8114d6b - <fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x6085e8114d6b - test[30c43f9fd66fea90]::__rust_begin_short_backtrace::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x6085e812175b - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x6085e812175b - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x6085e812175b - test[30c43f9fd66fea90]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x6085e811ce74 - test[30c43f9fd66fea90]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x6085e811ce74 - std[ec4e911328de40a6]::sys::backtrace::__rust_begin_short_backtrace::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x6085e8124362 - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::<(), core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x6085e8124362 - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x6085e8124362 - <std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x6085e81da01f - <alloc[c960326de6de28e6]::boxed::Box<dyn core[a96a4c5c53f902a3]::ops::function::FnOnce<(), Output = ()> + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x6085e81da01f - <std[ec4e911328de40a6]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7a363bcd8aa4 - <unknown>
[INFO] [stdout]   45:     0x7a363bd65a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_init_creates_project stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_init_creates_project' (34) panicked at tests/integration.rs:176:5:
[INFO] [stdout] assertion failed: project_path.exists()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec4e911328de40a6]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6085e81dacaa - std[ec4e911328de40a6]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6085e81dacaa - <<std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a96a4c5c53f902a3]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6085e81f12da - <core[a96a4c5c53f902a3]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6085e81f12da - core[a96a4c5c53f902a3]::fmt::write
[INFO] [stdout]    6:     0x6085e81e0a12 - std[ec4e911328de40a6]::io::default_write_fmt::<alloc[c960326de6de28e6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6085e81e0a12 - <alloc[c960326de6de28e6]::vec::Vec<u8> as std[ec4e911328de40a6]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6085e81b7cff - <std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6085e81b7cff - std[ec4e911328de40a6]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6085e81d2699 - std[ec4e911328de40a6]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6085e8120c8c - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6085e8120c8c - test[30c43f9fd66fea90]::test_main_with_exit_callback::<test[30c43f9fd66fea90]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6085e81d2852 - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6085e81d2852 - std[ec4e911328de40a6]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6085e81b7dea - std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x6085e81af529 - std[ec4e911328de40a6]::sys::backtrace::__rust_end_short_backtrace::<std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6085e81b8acd - __rustc[aa69f48705c57ca8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6085e81f1aec - core[a96a4c5c53f902a3]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6085e81f1ab2 - core[a96a4c5c53f902a3]::panicking::panic
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x6085e810e489 - integration[35ab63daba4d2138]::test_init_creates_project
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:176:5
[INFO] [stdout]   21:     0x6085e81060a7 - integration[35ab63daba4d2138]::test_init_creates_project::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:165:31
[INFO] [stdout]   22:     0x6085e8114b26 - <integration[35ab63daba4d2138]::test_init_creates_project::{closure#0} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6085e8114d6b - <fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6085e8114d6b - test[30c43f9fd66fea90]::__rust_begin_short_backtrace::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x6085e812175b - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x6085e812175b - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x6085e812175b - test[30c43f9fd66fea90]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x6085e811ce74 - test[30c43f9fd66fea90]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x6085e811ce74 - std[ec4e911328de40a6]::sys::backtrace::__rust_begin_short_backtrace::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x6085e8124362 - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::<(), core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x6085e8124362 - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x6085e8124362 - <std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x6085e81da01f - <alloc[c960326de6de28e6]::boxed::Box<dyn core[a96a4c5c53f902a3]::ops::function::FnOnce<(), Output = ()> + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   42:     0x6085e81da01f - <std[ec4e911328de40a6]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x7a363bcd8aa4 - <unknown>
[INFO] [stdout]   44:     0x7a363bd65a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_init_web_template stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_init_web_template' (40) panicked at tests/integration.rs:218:74:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec4e911328de40a6]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6085e81dacaa - std[ec4e911328de40a6]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6085e81dacaa - <<std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a96a4c5c53f902a3]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6085e81f12da - <core[a96a4c5c53f902a3]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6085e81f12da - core[a96a4c5c53f902a3]::fmt::write
[INFO] [stdout]    6:     0x6085e81e0a12 - std[ec4e911328de40a6]::io::default_write_fmt::<alloc[c960326de6de28e6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6085e81e0a12 - <alloc[c960326de6de28e6]::vec::Vec<u8> as std[ec4e911328de40a6]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6085e81b7cff - <std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6085e81b7cff - std[ec4e911328de40a6]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6085e81d2699 - std[ec4e911328de40a6]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6085e8120c8c - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6085e8120c8c - test[30c43f9fd66fea90]::test_main_with_exit_callback::<test[30c43f9fd66fea90]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6085e81d2852 - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6085e81d2852 - std[ec4e911328de40a6]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6085e81b7db8 - std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x6085e81af529 - std[ec4e911328de40a6]::sys::backtrace::__rust_end_short_backtrace::<std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6085e81b8acd - __rustc[aa69f48705c57ca8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6085e81f1aec - core[a96a4c5c53f902a3]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6085e81f1862 - core[a96a4c5c53f902a3]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x6085e810b64d - <core[a96a4c5c53f902a3]::result::Result<alloc[c960326de6de28e6]::string::String, std[ec4e911328de40a6]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x6085e810b64d - integration[35ab63daba4d2138]::test_init_web_template
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:218:74
[INFO] [stdout]   22:     0x6085e8105ec7 - integration[35ab63daba4d2138]::test_init_web_template::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:206:28
[INFO] [stdout]   23:     0x6085e81148a6 - <integration[35ab63daba4d2138]::test_init_web_template::{closure#0} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6085e8114d6b - <fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x6085e8114d6b - test[30c43f9fd66fea90]::__rust_begin_short_backtrace::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x6085e812175b - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x6085e812175b - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x6085e812175b - test[30c43f9fd66fea90]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x6085e811ce74 - test[30c43f9fd66fea90]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x6085e811ce74 - std[ec4e911328de40a6]::sys::backtrace::__rust_begin_short_backtrace::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x6085e8124362 - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::<(), core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x6085e8124362 - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x6085e8124362 - <std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x6085e81da01f - <alloc[c960326de6de28e6]::boxed::Box<dyn core[a96a4c5c53f902a3]::ops::function::FnOnce<(), Output = ()> + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x6085e81da01f - <std[ec4e911328de40a6]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7a363bcd8aa4 - <unknown>
[INFO] [stdout]   45:     0x7a363bd65a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_multiple_projects stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_multiple_projects' (128) panicked at tests/integration.rs:575:9:
[INFO] [stdout] assertion failed: temp_dir.path().join(format!("project{}", i)).exists()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec4e911328de40a6]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6085e81dacaa - std[ec4e911328de40a6]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6085e81dacaa - <<std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a96a4c5c53f902a3]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6085e81f12da - <core[a96a4c5c53f902a3]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6085e81f12da - core[a96a4c5c53f902a3]::fmt::write
[INFO] [stdout]    6:     0x6085e81e0a12 - std[ec4e911328de40a6]::io::default_write_fmt::<alloc[c960326de6de28e6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6085e81e0a12 - <alloc[c960326de6de28e6]::vec::Vec<u8> as std[ec4e911328de40a6]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6085e81b7cff - <std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6085e81b7cff - std[ec4e911328de40a6]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6085e81d2699 - std[ec4e911328de40a6]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6085e8120c8c - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6085e8120c8c - test[30c43f9fd66fea90]::test_main_with_exit_callback::<test[30c43f9fd66fea90]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6085e81d2852 - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6085e81d2852 - std[ec4e911328de40a6]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6085e81b7dea - std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x6085e81af529 - std[ec4e911328de40a6]::sys::backtrace::__rust_end_short_backtrace::<std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6085e81b8acd - __rustc[aa69f48705c57ca8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6085e81f1aec - core[a96a4c5c53f902a3]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6085e81f1ab2 - core[a96a4c5c53f902a3]::panicking::panic
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x6085e810bdcd - integration[35ab63daba4d2138]::test_multiple_projects
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:575:9
[INFO] [stdout]   21:     0x6085e8105f27 - integration[35ab63daba4d2138]::test_multiple_projects::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:563:28
[INFO] [stdout]   22:     0x6085e8114926 - <integration[35ab63daba4d2138]::test_multiple_projects::{closure#0} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6085e8114d6b - <fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6085e8114d6b - test[30c43f9fd66fea90]::__rust_begin_short_backtrace::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x6085e812175b - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x6085e812175b - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x6085e812175b - test[30c43f9fd66fea90]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x6085e811ce74 - test[30c43f9fd66fea90]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x6085e811ce74 - std[ec4e911328de40a6]::sys::backtrace::__rust_begin_short_backtrace::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x6085e8124362 - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::<(), core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x6085e8124362 - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x6085e8124362 - <std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x6085e81da01f - <alloc[c960326de6de28e6]::boxed::Box<dyn core[a96a4c5c53f902a3]::ops::function::FnOnce<(), Output = ()> + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   42:     0x6085e81da01f - <std[ec4e911328de40a6]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x7a363bcd8aa4 - <unknown>
[INFO] [stdout]   44:     0x7a363bd65a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_init_cli_template stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_init_cli_template' (33) panicked at tests/integration.rs:258:74:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec4e911328de40a6]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6085e81dacaa - std[ec4e911328de40a6]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6085e81dacaa - <<std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a96a4c5c53f902a3]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6085e81f12da - <core[a96a4c5c53f902a3]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6085e81f12da - core[a96a4c5c53f902a3]::fmt::write
[INFO] [stdout]    6:     0x6085e81e0a12 - std[ec4e911328de40a6]::io::default_write_fmt::<alloc[c960326de6de28e6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6085e81e0a12 - <alloc[c960326de6de28e6]::vec::Vec<u8> as std[ec4e911328de40a6]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6085e81b7cff - <std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6085e81b7cff - std[ec4e911328de40a6]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6085e81d2699 - std[ec4e911328de40a6]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6085e8120c8c - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6085e8120c8c - test[30c43f9fd66fea90]::test_main_with_exit_callback::<test[30c43f9fd66fea90]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6085e81d2852 - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6085e81d2852 - std[ec4e911328de40a6]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6085e81b7db8 - std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x6085e81af529 - std[ec4e911328de40a6]::sys::backtrace::__rust_end_short_backtrace::<std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6085e81b8acd - __rustc[aa69f48705c57ca8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6085e81f1aec - core[a96a4c5c53f902a3]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6085e81f1862 - core[a96a4c5c53f902a3]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x6085e810a92d - <core[a96a4c5c53f902a3]::result::Result<alloc[c960326de6de28e6]::string::String, std[ec4e911328de40a6]::io::error::Error>>::unwrap
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x6085e810a92d - integration[35ab63daba4d2138]::test_init_cli_template
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:258:74
[INFO] [stdout]   22:     0x6085e8105e37 - integration[35ab63daba4d2138]::test_init_cli_template::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:246:28
[INFO] [stdout]   23:     0x6085e81147e6 - <integration[35ab63daba4d2138]::test_init_cli_template::{closure#0} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6085e8114d6b - <fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x6085e8114d6b - test[30c43f9fd66fea90]::__rust_begin_short_backtrace::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:663:18
[INFO] [stdout]   26:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:74
[INFO] [stdout]   27:     0x6085e812175b - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x6085e812175b - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:27
[INFO] [stdout]   32:     0x6085e812175b - test[30c43f9fd66fea90]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:607:43
[INFO] [stdout]   33:     0x6085e811ce74 - test[30c43f9fd66fea90]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:637:41
[INFO] [stdout]   34:     0x6085e811ce74 - std[ec4e911328de40a6]::sys::backtrace::__rust_begin_short_backtrace::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   36:     0x6085e8124362 - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::<(), core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x6085e8124362 - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   41:     0x6085e8124362 - <std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x6085e81da01f - <alloc[c960326de6de28e6]::boxed::Box<dyn core[a96a4c5c53f902a3]::ops::function::FnOnce<(), Output = ()> + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   43:     0x6085e81da01f - <std[ec4e911328de40a6]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x7a363bcd8aa4 - <unknown>
[INFO] [stdout]   45:     0x7a363bd65a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_status_json_output stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_status_json_output' (176) panicked at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5:
[INFO] [stdout] Unexpected stdout, failed var.contains("success": true)
[INFO] [stdout] ├── var: {"command":"status","git":{"branch":"unknown","last_commit":"N/A","modified_files":0,"untracked_files":0},"project":{"description":null,"name":"jsontest","version":"1.0.0"},"success":true}
[INFO] [stdout] └── var as str: {"command":"status","git":{"branch":"unknown","last_commit":"N/A","modified_files":0,"untracked_files":0},"project":{"description":null,"name":"jsontest","version":"1.0.0"},"success":true}
[INFO] [stdout] 
[INFO] [stdout] command=`cd "/tmp/.tmpf59DPt" && "/opt/rustwide/target/debug/devflow" "--output" "json" "status"`
[INFO] [stdout] code=0
[INFO] [stdout] stdout="{\"command\":\"status\",\"git\":{\"branch\":\"unknown\",\"last_commit\":\"N/A\",\"modified_files\":0,\"untracked_files\":0},\"project\":{\"description\":null,\"name\":\"jsontest\",\"version\":\"1.0.0\"},\"success\":true}\n"
[INFO] [stdout] stderr="[2026-03-27T12:49:08Z INFO  devflow] Démarrage de DevFlow v0.1.0\n"
[INFO] [stdout] 
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec4e911328de40a6]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6085e81dacaa - std[ec4e911328de40a6]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6085e81dacaa - <<std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a96a4c5c53f902a3]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6085e81f12da - <core[a96a4c5c53f902a3]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6085e81f12da - core[a96a4c5c53f902a3]::fmt::write
[INFO] [stdout]    6:     0x6085e81e0a12 - std[ec4e911328de40a6]::io::default_write_fmt::<alloc[c960326de6de28e6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6085e81e0a12 - <alloc[c960326de6de28e6]::vec::Vec<u8> as std[ec4e911328de40a6]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6085e81b7cff - <std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6085e81b7cff - std[ec4e911328de40a6]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6085e81d2699 - std[ec4e911328de40a6]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6085e8120c8c - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6085e8120c8c - test[30c43f9fd66fea90]::test_main_with_exit_callback::<test[30c43f9fd66fea90]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6085e81d2852 - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6085e81d2852 - std[ec4e911328de40a6]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6085e81b7db8 - std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x6085e81af529 - std[ec4e911328de40a6]::sys::backtrace::__rust_end_short_backtrace::<std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6085e81b8acd - __rustc[aa69f48705c57ca8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6085e81f1aec - core[a96a4c5c53f902a3]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6085e815d708 - core[a96a4c5c53f902a3]::panicking::panic_display::<assert_cmd[ef65ef0cc289862b]::assert::AssertError>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:259:5
[INFO] [stdout]   20:     0x6085e81687a7 - <assert_cmd[ef65ef0cc289862b]::assert::AssertError>::panic::<assert_cmd[ef65ef0cc289862b]::assert::Assert>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/assert_cmd-2.1.2/src/assert.rs:1036:9
[INFO] [stdout]   21:     0x6085e81678d7 - <<assert_cmd[ef65ef0cc289862b]::assert::AssertError>::panic<assert_cmd[ef65ef0cc289862b]::assert::Assert> as core[a96a4c5c53f902a3]::ops::function::FnOnce<(assert_cmd[ef65ef0cc289862b]::assert::AssertError,)>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   22:     0x6085e81624e3 - <core[a96a4c5c53f902a3]::result::Result<assert_cmd[ef65ef0cc289862b]::assert::Assert, assert_cmd[ef65ef0cc289862b]::assert::AssertError>>::unwrap_or_else::<<assert_cmd[ef65ef0cc289862b]::assert::AssertError>::panic<assert_cmd[ef65ef0cc289862b]::assert::Assert>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/result.rs:1622:23
[INFO] [stdout]   23:     0x6085e8111af4 - <assert_cmd[ef65ef0cc289862b]::assert::Assert>::stdout::<predicates[6090b3e70b9e2c8]::str::basics::ContainsPredicate, assert_cmd[ef65ef0cc289862b]::assert::StrOutputPredicate<predicates[6090b3e70b9e2c8]::str::basics::ContainsPredicate>>
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/assert_cmd-2.1.2/src/assert.rs:367:31
[INFO] [stdout]   24:     0x6085e810d5c7 - integration[35ab63daba4d2138]::test_status_json_output
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:358:10
[INFO] [stdout]   25:     0x6085e8106017 - integration[35ab63daba4d2138]::test_status_json_output::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:338:29
[INFO] [stdout]   26:     0x6085e8114a66 - <integration[35ab63daba4d2138]::test_status_json_output::{closure#0} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   27:     0x6085e8114d6b - <fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   28:     0x6085e8114d6b - test[30c43f9fd66fea90]::__rust_begin_short_backtrace::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:663:18
[INFO] [stdout]   29:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:74
[INFO] [stdout]   30:     0x6085e812175b - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   31:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   32:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   33:     0x6085e812175b - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   34:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:27
[INFO] [stdout]   35:     0x6085e812175b - test[30c43f9fd66fea90]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:607:43
[INFO] [stdout]   36:     0x6085e811ce74 - test[30c43f9fd66fea90]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:637:41
[INFO] [stdout]   37:     0x6085e811ce74 - std[ec4e911328de40a6]::sys::backtrace::__rust_begin_short_backtrace::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   38:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   39:     0x6085e8124362 - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   40:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   41:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::<(), core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   42:     0x6085e8124362 - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   43:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   44:     0x6085e8124362 - <std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   45:     0x6085e81da01f - <alloc[c960326de6de28e6]::boxed::Box<dyn core[a96a4c5c53f902a3]::ops::function::FnOnce<(), Output = ()> + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   46:     0x6085e81da01f - <std[ec4e911328de40a6]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   47:     0x7a363bcd8aa4 - <unknown>
[INFO] [stdout]   48:     0x7a363bd65a64 - clone
[INFO] [stdout]   49:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- test_init_with_git stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_init_with_git' (95) panicked at tests/integration.rs:201:5:
[INFO] [stdout] assertion failed: git_path.exists()
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6085e81dacaa - std[ec4e911328de40a6]::backtrace_rs::backtrace::trace_unsynchronized::<std[ec4e911328de40a6]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6085e81dacaa - std[ec4e911328de40a6]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6085e81dacaa - <<std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a96a4c5c53f902a3]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6085e81f12da - <core[a96a4c5c53f902a3]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6085e81f12da - core[a96a4c5c53f902a3]::fmt::write
[INFO] [stdout]    6:     0x6085e81e0a12 - std[ec4e911328de40a6]::io::default_write_fmt::<alloc[c960326de6de28e6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6085e81e0a12 - <alloc[c960326de6de28e6]::vec::Vec<u8> as std[ec4e911328de40a6]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6085e81b7cff - <std[ec4e911328de40a6]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6085e81b7cff - std[ec4e911328de40a6]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6085e81d2699 - std[ec4e911328de40a6]::panicking::default_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6085e8120c8c - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6085e8120c8c - test[30c43f9fd66fea90]::test_main_with_exit_callback::<test[30c43f9fd66fea90]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6085e81d2852 - <alloc[c960326de6de28e6]::boxed::Box<dyn for<'a, 'b> core[a96a4c5c53f902a3]::ops::function::Fn<(&'a std[ec4e911328de40a6]::panic::PanicHookInfo<'b>,), Output = ()> + core[a96a4c5c53f902a3]::marker::Sync + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::Fn<(&std[ec4e911328de40a6]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6085e81d2852 - std[ec4e911328de40a6]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6085e81b7dea - std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:691:13
[INFO] [stdout]   16:     0x6085e81af529 - std[ec4e911328de40a6]::sys::backtrace::__rust_end_short_backtrace::<std[ec4e911328de40a6]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6085e81b8acd - __rustc[aa69f48705c57ca8]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6085e81f1aec - core[a96a4c5c53f902a3]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6085e81f1ab2 - core[a96a4c5c53f902a3]::panicking::panic
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panicking.rs:150:5
[INFO] [stdout]   20:     0x6085e8107f64 - integration[35ab63daba4d2138]::test_init_with_git
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:201:5
[INFO] [stdout]   21:     0x6085e8105c57 - integration[35ab63daba4d2138]::test_init_with_git::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/integration.rs:190:24
[INFO] [stdout]   22:     0x6085e8114566 - <integration[35ab63daba4d2138]::test_init_with_git::{closure#0} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x6085e8114d6b - <fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6085e8114d6b - test[30c43f9fd66fea90]::__rust_begin_short_backtrace::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, fn() -> core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:663:18
[INFO] [stdout]   25:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:74
[INFO] [stdout]   26:     0x6085e812175b - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   27:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   28:     0x6085e812175b - std[ec4e911328de40a6]::panicking::catch_unwind::<core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>, core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   29:     0x6085e812175b - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<test[30c43f9fd66fea90]::run_test_in_process::{closure#0}>, core[a96a4c5c53f902a3]::result::Result<(), alloc[c960326de6de28e6]::string::String>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   30:     0x6085e812175b - test[30c43f9fd66fea90]::run_test_in_process
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:686:27
[INFO] [stdout]   31:     0x6085e812175b - test[30c43f9fd66fea90]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:607:43
[INFO] [stdout]   32:     0x6085e811ce74 - test[30c43f9fd66fea90]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/test/src/lib.rs:637:41
[INFO] [stdout]   33:     0x6085e811ce74 - std[ec4e911328de40a6]::sys::backtrace::__rust_begin_short_backtrace::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   34:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   35:     0x6085e8124362 - <core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   36:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::do_call::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stdout]   37:     0x6085e8124362 - std[ec4e911328de40a6]::panicking::catch_unwind::<(), core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stdout]   38:     0x6085e8124362 - std[ec4e911328de40a6]::panic::catch_unwind::<core[a96a4c5c53f902a3]::panic::unwind_safe::AssertUnwindSafe<std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stdout]   39:     0x6085e8124362 - std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked::<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   40:     0x6085e8124362 - <std[ec4e911328de40a6]::thread::lifecycle::spawn_unchecked<test[30c43f9fd66fea90]::run_test::{closure#1}, ()>::{closure#1} as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   41:     0x6085e81da01f - <alloc[c960326de6de28e6]::boxed::Box<dyn core[a96a4c5c53f902a3]::ops::function::FnOnce<(), Output = ()> + core[a96a4c5c53f902a3]::marker::Send> as core[a96a4c5c53f902a3]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   42:     0x6085e81da01f - <std[ec4e911328de40a6]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   43:     0x7a363bcd8aa4 - <unknown>
[INFO] [stdout]   44:     0x7a363bd65a64 - clone
[INFO] [stdout]   45:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_devflow_config_content
[INFO] [stdout]     test_init_cli_template
[INFO] [stdout]     test_init_creates_project
[INFO] [stdout]     test_init_lib_template
[INFO] [stdout]     test_init_web_template
[INFO] [stdout]     test_init_with_git
[INFO] [stdout]     test_multiple_projects
[INFO] [stdout]     test_status_json_output
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 30 passed; 8 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.55s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "03a9e132d286a0d2588a2120e73bf2ad6e68029daa00af97099096a334571ba5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "03a9e132d286a0d2588a2120e73bf2ad6e68029daa00af97099096a334571ba5", kill_on_drop: false }`
[INFO] [stdout] 03a9e132d286a0d2588a2120e73bf2ad6e68029daa00af97099096a334571ba5
